springboot+mybatis实现增删改查
开发工具IDEA
二.添加依赖pom.xml


1 <?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4 <modelVersion>4.0.0</modelVersion>
5 <parent>
6 <groupId>org.springframework.boot</groupId>
7 <artifactId>spring-boot-starter-parent</artifactId>
8 <version>2.3.1.RELEASE</version>
9 <relativePath/> <!-- lookup parent from repository -->
10 </parent>
11 <groupId>com.jzdsh</groupId>
12 <artifactId>demo</artifactId>
13 <version>0.0.1-SNAPSHOT</version>
14 <name>demo</name>
15 <description>Demo project for Spring Boot</description>
16
17 <properties>
18 <java.version>1.8</java.version>
19 </properties>
20
21 <dependencies>
22 <!-- postgresql数据库驱动-->
23 <dependency>
24 <groupId>org.postgresql</groupId>
25 <artifactId>postgresql</artifactId>
26 <version>42.2.5</version>
27 </dependency>
28 <dependency>
29 <groupId>org.springframework.boot</groupId>
30 <artifactId>spring-boot-starter-jdbc</artifactId>
31 </dependency>
32 <dependency>
33 <groupId>org.springframework.boot</groupId>
34 <artifactId>spring-boot-starter-thymeleaf</artifactId>
35 </dependency>
36 <dependency>
37 <groupId>org.projectlombok</groupId>
38 <artifactId>lombok</artifactId>
39 </dependency>
40 <dependency>
41 <groupId>org.springframework.boot</groupId>
42 <artifactId>spring-boot-starter-web</artifactId>
43 </dependency>
44 <dependency>
45 <groupId>org.mybatis.spring.boot</groupId>
46 <artifactId>mybatis-spring-boot-starter</artifactId>
47 <version>2.1.3</version>
48 </dependency>
49 <dependency>
50 <groupId>mysql</groupId>
51 <artifactId>mysql-connector-java</artifactId>
52 <scope>runtime</scope>
53 </dependency>
54 <dependency>
55 <groupId>org.springframework.boot</groupId>
56 <artifactId>spring-boot-starter-test</artifactId>
57 <scope>test</scope>
58 <exclusions>
59 <exclusion>
60 <groupId>org.junit.vintage</groupId>
61 <artifactId>junit-vintage-engine</artifactId>
62 </exclusion>
63 </exclusions>
64 </dependency>
65 </dependencies>
66
67 <build>
68 <plugins>
69 <plugin>
70 <groupId>org.springframework.boot</groupId>
71 <artifactId>spring-boot-maven-plugin</artifactId>
72 </plugin>
73 </plugins>
74 </build>
75
76 </project>
三.配置文件application.properties 点击查看更多配置


1 server.port=8080
2 server.servlet.context-path=/wuzhiqiang#项目名
3
4
5 spring.datasource.url=jdbc:postgresql://10.100.55.64:5432/ruleengine#连接路径
6 spring.datasource.username=#用户名
7 spring.datasource.password=#密码
8 spring.datasource.driverClassName=org.postgresql.Driver#驱动
9
10 mybatis.mapperLocations=classpath:templates/mapper/**/*.xml
四.项目结构
五.上代码
1.controller StudentController


1 package com.jzdsh.demo.controller;
2
3 import com.jzdsh.demo.model.Student;
4 import com.jzdsh.demo.service.StudentService;
5 import com.jzdsh.demo.util.AjaxMessage;
6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.web.bind.annotation.RequestMapping;
8 import org.springframework.web.bind.annotation.RestController;
9
10 import java.util.List;
11
12 /**
13 * @author ex_wuzhiqiang.
14 * @date 2020/7/13.
15 * @time 15:36.
16 */
17 @RestController
18 @RequestMapping("/index")
19 public class StudentController {
20 @Autowired(required = false)
21 private StudentService studentService;
22
23 @RequestMapping("/select")
24 public AjaxMessage selectAll(){
25 AjaxMessage<Object> objectAjaxMessage = new AjaxMessage<>();
26 List<Student> list = studentService.selectAll();
27 if (list != null){
28 objectAjaxMessage.setData(list);
29 objectAjaxMessage.setIs(true);
30 objectAjaxMessage.setMsg("success");
31 }else {
32 objectAjaxMessage.setMsg("fail");
33 objectAjaxMessage.setIs(false);
34 }
35 return objectAjaxMessage;
36 }
37 }
2.service StudentService


1 package com.jzdsh.demo.service;
2
3 import com.jzdsh.demo.model.Student;
4
5 import java.util.List;
6
7 /**
8 * @author ex_wuzhiqiang.
9 * @date 2020/7/13.
10 * @time 15:38.
11 */
12 public interface StudentService {
13 List<Student> selectAll();
14 }
3.service impl StudentServiceImpl


1 package com.jzdsh.demo.service.impl;
2
3 import com.jzdsh.demo.dao.StudentDao;
4 import com.jzdsh.demo.model.Student;
5 import com.jzdsh.demo.service.StudentService;
6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.stereotype.Service;
8
9 import java.util.List;
10
11 /**
12 * @author ex_wuzhiqiang.
13 * @date 2020/7/13.
14 * @time 15:38.
15 */
16 @Service
17 public class StudentServiceImpl implements StudentService {
18 @Autowired
19 private StudentDao studentDao;
20 @Override
21 public List<Student> selectAll() {
22 try {
23 return studentDao.selectAll();
24 } catch (Exception e) {
25 e.printStackTrace();
26 }
27 return null;
28 }
29 }
4.dao StudentDao


1 package com.jzdsh.demo.dao;
2
3 import com.jzdsh.demo.model.Student;
4 import org.apache.ibatis.annotations.Mapper;
5
6 import java.util.List;
7
8 /**
9 * @author ex_wuzhiqiang.
10 * @date 2020/7/13.
11 * @time 16:16.
12 */
13 @Mapper
14 public interface StudentDao {
15 List<Student> selectAll();
16 }
5.util AjaxMessage


1 package com.jzdsh.demo.util;
2
3 import lombok.Data;
4
5 /**
6 * @author ex_wuzhiqiang.
7 * @date 2020/7/13.
8 * @time 15:39.
9 */
10 @Data
11 public class AjaxMessage<T> {
12 private String msg;
13 private T data;
14 private boolean is;
15 public AjaxMessage() {
16 this.msg="成功";
17 this.is=true;
18 }
19
20 public AjaxMessage(String code, String msg, boolean is) {
21 this.msg = msg;
22 this.is = is;
23 }
24
25 public AjaxMessage(String code, String msg, T data, boolean is) {
26 this.msg = msg;
27 this.data = data;
28 this.is = is;
29 }
30 }
6.templates/mapper/student StudentMapper.xml


1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
4 <mapper namespace="com.jzdsh.demo.dao.StudentDao">
5
6 <select id="selectAll" resultType="com.jzdsh.demo.model.Student">
7 select * from t_test_marketcount order by id asc
8 </select>
9 </mapper>
7.页面resource/index.html


1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4
5 <meta charset="UTF-8">
6 <title>Title</title>
7 </head>
8 <body>
9 <button onclick="selectButton()">
10 查询
11 </button>
12 <table>
13 <thead>
14 <tr>
15 <th>id</th>
16 <th>姓名</th>
17 <th>年龄</th>
18 </tr>
19 </thead>
20 <tbody>
21
22 </tbody>
23 </table>
24 <script type="text/javascript" src="./js/jquery-2.1.1.min.js"></script>
25 <script>
26 function selectButton() {
27
28 $.ajax({
29 type:"post",
30 url:"/wuzhiqiang/index/select",
31 dataType:"json",
32 success:function (data) {
33 console.log(JSON.stringify(data));
34
35 console.log(data.data.length
36 )
37 var str = "";
38 for (var i=0;i<data.data.length;i++){
39 str +="<tr>" +
40 "<td>" +
41 data.data[i].id+
42 "</td>" +
43 "<td>" +
44 data.data[i].name+
45 "</td>" +
46 "<td>" +
47 data.data[i].age+
48 "</td>" +
49 "</tr>";
50 }
51 $("table tbody").append(str);
52
53 }
54 })
55 }
56 </script>
57 </body>
58 </html>
六.数据库
七.效果展示
--------------------到此查询简单的做完了,增删改就差不多了,在此就不写了。。。。。。。。。。。---------------------------------------------------
八.问题总结
1.html页面引入了jquery,但是js报unresolved function or method $();
解决:
在idea中选择file-settings打开设置窗口,找到Libraries,在Language&Frameworks下面的JavaScript中
点击add,弹出窗口
点击“+”选择要添加的jquery文件,注意要选择不带min的jquery
2.application.properties问题
主要主要application.properties和application.yml的书写格式
再一个就是对mapper.xml文件路径配置时,要注意路径(直接写在resources下直接写文件名;如果写在templates包下则要加包名。
如本项目路径为templates/mapper/studetent/StudentMapper.xml:
配置为:mybatis.mapperLocations=classpath:templates/mapper/**/*.xml)
3.idea中的lombok插件已经下载,并且在另一个项目上可以使用,但在此项目上不能使用解决办法:
settings -> Build,Execution,Deployment -> Annotation Processors -> 把Enable annotation processing勾选
4.启动类
报错:required a bean of type 'XXX.XXX.XXX' that could not be found
把主启动类上的exclude= {DataSourceAutoConfiguration.class} 去掉,然后就可以了。
原来为什么加这个参数?因为原来没有在application.yml或者application.properties中配置spring.datasource.url这个属性,所以启动会报错。
但是后来我配置了数据源相关的属性,应该把exclude= {DataSourceAutoConfiguration.class}去掉,而且spring-data-jpa是操作数据库相关的框架,可能exculde数据源配置导致spring不会自动扫描repository。
springboot+mybatis实现增删改查的更多相关文章
- 从0开始完成SpringBoot+Mybatis实现增删改查
1.准备知识: 1)需要掌握的知识: Java基础,JavaWeb开发基础,Spring基础(没有Spring的基础也可以,接触过Spring最好),ajax,Jquery,Mybatis. 2)项目 ...
- 从零开始搭建springboot+mybatis+thymeleaf增删改查示例
环境说明: 开发工具:Eclipse Mars.2 Release(4.5.2) JDK:1.8 Maven:3.3.3 注:Eclipse需安装sts插件,安装方法请自行百度 1. 新建maven工 ...
- 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作
一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。
1.引入依赖. <!--springboot的web起步依赖--><dependency> <groupId>org.springframework.boot< ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查
使用mybatis框架进行增删改查大致有两种基础方式,一种扩展方式.两种基础方式分别是使用xml映射文件和使用方法注解.扩展方式是使用mybatis-plus的方式,其用法类似于spring-data ...
- Spring Boot入门系列(六)如何整合Mybatis实现增删改查
前面介绍了Spring Boot 中的整合Thymeleaf前端html框架,同时也介绍了Thymeleaf 的用法.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/z ...
- ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)
ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...
- SpringBoot JPA实现增删改查、分页、排序、事务操作等功能
今天给大家介绍一下SpringBoot中JPA的一些常用操作,例如:增删改查.分页.排序.事务操作等功能.下面先来介绍一下JPA中一些常用的查询操作: //And --- 等价于 SQL 中的 and ...
- springboot+jpa+thymeleaf增删改查的示例(转)
这篇文章介绍如何使用jpa和thymeleaf做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个demo来试试它的效果,越简单越容易上 ...
- MyBatis的增删改查。
数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改,并且对程序接口做了一些调整,以及对一些问题进行了解答. 1.调整后的结构图: 2.连接数据库文件配置分离: 一般的程序都会把连 ...
随机推荐
- C-05\函数的底层原理
一.程序运行时内存四大区 wres(内存属性): w:write(可写) r:read(可读) e:execute(可执行) s:share(可共享) 任何操作系统(windows.liunx.安卓. ...
- spring中Utils工具类注入问题
使用工具类的时候,我们想在static修饰的方法中,通过注入来调用其他方法,这里就存在问题. 第一:普通工具类是不在spring的管理下,spring不会依赖注入 第二:即便使用@Autowired完 ...
- 详谈pytest中的xfail
详谈pytest中的xfail 原文链接: https://docs.pytest.org/en/7.2.x/how-to/skipping.html 链接中详细阐述了skip和xfail两种情况 x ...
- Ubuntu/linux下最强大的下载工具-aria2
aria2 是 Linux 下一个不错的高速下载工具 .由于它具有分段下载引擎,所以支持从多个地址或者从一个地址的多个连接来下载同一个文件.这样自然就大大加快了文件的下载速 度.aria2 也具有断点 ...
- 【模板】动态树(Link Cut Tree)
模板 \(\text{Code}\) #include <cstdio> #include <iostream> #define IN inline #define RE re ...
- 3D建模零代码平台
近几年,随着国内外文化产业的迅猛发展,3D建模行业迎来黄金发展期. 尤其是在元宇宙时代及数字体验经济时代的大背景下,越来越多的实时.可交互的3D内容将出现在人们的生活中. 关于3D建模师而言,无疑,行 ...
- vue弹窗后如何禁止滚动条滚动
toggleBody(isPin){ if(isPin){ document.body.style.height = '100vh' document.body.style['overflow-y'] ...
- PostGIS之空间索引
1. 概述 PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询 PostGIS官网:About PostGIS | PostGIS ...
- Qt-FFmpeg开发-视频播放【软解码 + OpenGL显示RGB图像】(3)
Qt-FFmpeg开发-视频播放[软解码 + OpenGL显示RGB图像] 目录 Qt-FFmpeg开发-视频播放[软解码 + OpenGL显示RGB图像] 1.概述 2.实现效果 3.FFmpeg软 ...
- centos7 部署 loonflow
a workflow engine base on django 基于django的工作流引擎系统(通过http接口调用,可以作为企业内部统一的工作流引擎,提供诸如权限申请.资源申请.发布申请.请假. ...