SpringBoot 整合 Mybatis
-
创建项目,创建时引入相应模块
- Web
- Spring Web
- SQL
- JDBC API
- MySQL Driver
- Web
-
导入 mybatis 所需要的依赖
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency>
-
配置数据库连接信息
spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver
-
测试数据库是否连接成功
@Autowired DataSource dataSource; @Test void contextLoads() { System.out.println(dataSource.getClass()); }
测试成功!
-
创建实体类(这里使用了Lombok,需要导入依赖)
package com.cheng.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor public class User { private int id; private String name; private String pwd; }
-
创建实体类目录及对应的 Mapper 接口
package com.cheng.mapper; import com.cheng.pojo.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @Mapper @Repository public interface UserMapper { // 获取所有用户信息 List<User> selectAllUser(); // 添加用户 int addUser(User user); // 通过 id 获取用户 User getUserById(int id); // 修改用户 int updateUser(User user); // 删除用户 int deleteUser(int id); }
-
创建 mapper 映射文件
- resources
- mybatis
- mapper
- UserMapper.xml
- mapper
- mybatis
mybatis 官方中文文档地址:https://mybatis.org/mybatis-3/zh/index.html
<?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"> <mapper namespace="com.cheng.mapper.UserMapper"> <select id="selectAllUser" resultType="User"> select * from mybatis.user; </select> <insert id="addUser" parameterType="User"> insert into mybatis.user(id, name, pwd) values (#{id}, #{name}, #{pwd}); </insert> <select id="getUserById" resultType="User"> select * from mybatis.user where id = #{id}; </select> <update id="updateUser" parameterType="User"> update mybatis.user set name=#{name}, pwd=#{pwd} where id=#{id}; </update> <delete id="deleteUser" parameterType="int"> delete from mybatis.user where id=#{id}; </delete> </mapper>
- resources
-
mybatis 配置
application.yml
spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver http: # 解决页面输出乱码问题 encoding: force: true charset: utf-8 enabled: true server: tomcat: uri-encoding: UTF-8 # 整合 mybatis mybatis: type-aliases-package: com.cheng.pojo mapper-locations: classpath:mybatis/mapper/*.xml
-
编写用户的 UserController 进行测试
注:这里因为是测试,所以省略了 service 层
package com.cheng.controller; import com.cheng.mapper.UserMapper; import com.cheng.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/selectAllUser") public List<User> selectAllUser() { List<User> userList = userMapper.selectAllUser(); for (User user : userList) { System.out.println(user); } return userList; } @RequestMapping("/addUser") public int addUser() { return userMapper.addUser(new User(9, "法外狂徒张三", "123456")); } @RequestMapping("/getUserById") public User getUserById() { User user = userMapper.getUserById(9); System.out.println(user); return user; } @RequestMapping("/updateUser") public int updateUser() { return userMapper.updateUser(new User(9, "五好青年张三", "000000")); } @RequestMapping("/deleteUser") public int deleteUser() { return userMapper.deleteUser(9); } }
-
启动项目,运行测试即可