Spring Boot整合Mybatis实现增删改查
前言
- 目前Spring Data JPA在国外广泛流行,但是国内依然在使用MyBatis框架。所以,今天这篇内容我们将详细介绍如何在Spring Boot中整合MyBatis框架,来完成数据库的增删改查操作。
第一步:创建一个Spring Boot项目
-
注意:创建spring boot项目时我们要选中web依赖与mysql的驱动
-
项目创建完毕后,我们要在pom文件中添加MyBatis Spring Boot Starter依赖,使项目可以正常运行
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency>
-
MyBatis Spring Boot Starter::Maven Repository:mybatis
第二步:在properties文件中配置mysql的连接
- 在properties文件中编写数据库的信息
# 配置mysql的连接配置 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.url=jdbc:mysql://localhost:3306/mybatis? serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
第三步:在Test中测试数据库的链接
- 在test目录下测试数据库是否成功链接
@SpringBootTest class Springboot04MybatisApplicationTests { @Autowired DataSource dataSource; @Test void contextLoads() throws SQLException { System.out.println(dataSource.getClass()); System.out.println(dataSource.getConnection()); } }
第四步:创建数据库的实体类
- 数据库连接成功后,对应数据库的字段名称创建一个User的实体类
@Data @NoArgsConstructor @AllArgsConstructor public class User { private int id; private String name; private String pwd; }
- 导入Lombok依赖,使用注解简化代码
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
第五步:创建mapper接口类
- 创建一个UserMapper接口编写CRUD的方法
@Mapper//这个注解表示这是个mybatis的mapper类 @Repository public interface UserMapper { List<User> queryUserList(); User queryUserById(int id); int insertUser(User user); int updateUser(User user); int deleteUser(int id); }
第六步:编写sql语句
- 我们统一将sql语句的xml文件放在resource目录下,在resources目录下创建一个子目录mybatis,在mybatis目录下创建一个mapper目录,我们将sql的xml文件放入其中
- xml文件创建完毕后,编写sql语句(这里仅以update语句为例)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace=绑定一个对应的Mapper接口--> <mapper namespace="com.ran.mapper.UserMapper"> <update id="updateUser"> update user <trim prefix="set" suffixOverrides=","> <if test="name!=null and name!=''">name=#{name},</if> <if test="pwd!=null and pwd!=''">pwd=#{pwd},</if> </trim> where id=#{id} </update> </mapper>
- 注意:我们需要在properties文件中整合mybatis使UserMapper.xml能被识别
# 整合mybatis mybatis.type-aliases-package=com.ran.pojo mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
- 完整的application.properties文件
# 配置mysql的连接配置 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.url=jdbc:mysql://localhost:3306/mybatis? serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # 整合mybatis mybatis.type-aliases-package=com.ran.pojo mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
第七步:创建controller层实现功能
- 在目录下创建controller层,编写UserController类,实现增删改查的方法
@RestController @RequestMapping("/springboot") public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/queryUserList") public List<User> queryUserList(){ return userMapper.queryUserList(); } @GetMapping("/queryUserById") public User queryUserById(){ return userMapper.queryUserById(4); } @GetMapping("/insertUser") public int insertUser(User user){ return userMapper.insertUser(user); } @GetMapping("/deleteUser") public int deleteUser(){ return userMapper.deleteUser(5); } @GetMapping("/updateUser") public int updateUser(){ return userMapper.updateUser(new User(5,"lemon01","666666")); }
第八步:测试
- 启动项目,利用Apifox测试接口是否连通,若能查询出全部数据,则证明接口无误