SpringBoot 整合MyBatis
一、MyBatis 简介
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Ordinary Java Objects,简单 Java 对象)为数据库中的记录。
参考自 MyBatis 的官方简介。
MyBatis 作为一款优秀的持久层框架,具有如下优点:
- 小巧并且简单易学。
- 相比于 JDBC 减少了大量冗余的代码。
- 将 SQL 语句与程序代码进行分离,降低了耦合,便于管理。
- 提供 XML 标签,支持编写动态 SQL 语句。
- 提供映射标签,支持 Java 对象的属性与数据表字段的映射关系。
二、创建一个springboot模块


三、导入依赖
在pom.xml中添加依赖
<!--mybatis依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> <!--MySQL数据库连接的依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> <!--lombok插件--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>provided</scope> </dependency>
四、添加配置文件
在resource目录下创建application.yml配置文件,内容如下
server: port: 8080 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 123456 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.augus.pojo
五、在java下创建包com.augus,内容如下:
实现案例:在mydb中数据库中有一个user表,从中读取内容内容

1.在com.augus下创建包pojo
在里面创建User实体类,内容如下:
package com.augus.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; @AllArgsConstructor @NoArgsConstructor @Data public class User implements Serializable { private Integer uid; private String username; private String password; }
2.创建mapper包
在下面创建UserMapper接口内容为:
package com.augus.mapper; import com.augus.pojo.User; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface UserMapper { List<User> findAll(); }
3.创建包service
创建UserService接口,内容如下:
package com.augus.service; import com.augus.pojo.User; import java.util.List; public interface UserService { List<User> queryAllUser(); }
创建impl包在里面创建UserService接口的实现类:UserServiceImpl
package com.augus.service.impl; import com.augus.mapper.UserMapper; import com.augus.pojo.User; import com.augus.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> queryAllUser() { return userMapper.findAll(); } }
4.创建包controller
创建UserController,内容如下
package com.augus.controller; import com.augus.pojo.User; import com.augus.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping("findAll") @ResponseBody public List<User> findAll(){ return userService.queryAllUser(); } }
六、在resource包创建包mapper
在mapper包下创建UserMapper.xml文件
<?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.augus.mapper.UserMapper"> <!--findAllUser--> <select id="findAll" resultType="user"> select * from user </select> </mapper>
七、启动项目,进行测试

启动项目后,在浏览器访问http://localhost:8080/user/findAll,如下图所示


浙公网安备 33010602011771号