前言:本文通过简单介绍Spring Boot和MyBatis框架整合,提升与数据库的交互作用,同时也解决了多表多条件分页查询问题,该组合会比SSM简单好用。
设计数据库
DROP TABLE IF EXISTS `department`;
SET character_set_client = utf8mb4 ;
CREATE TABLE `department` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`dname` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `springboot_demo`.`department` (`id`, `dname`)
VALUES (101, '教学部'),
(102, '市场部'),
(103, '教研部'),
(104, '运营部'),
(105, '后勤部');
导入依赖
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
配置application.yml
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/springboot_demo?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
username: root
mybatis:
type-aliases-package: com.kaung.pojo # 实体类位置,用于匹配类型
mapper-locations: classpath:mapper/*.xml # 映射文件位置
创建实体类 pojo
Department
@Data
public class Department {
private Integer id; // 部门id
private String dname; // 部门名称
}
创建mapper
DepartmentMapper.java
@Mapper
@Repository
public interface DepartmentMapper {
public List<Department> getDepartmentList();
public Department getDepartmentById(Integer id);
}
DepartmentMapper.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.kaung.mapper.DepartmentMapper"> <!--指定映射接口类-->
<select id="getDepartmentList" resultType="Department">
select * from department;
</select>
<select id="getDepartmentById" parameterType="int" resultType="Department">
select * from department where id = #{id};
</select>
</mapper>
创建service
DepartmentService
public interface DepartmentService {
public List<Department> getDepartmentList(); // 获取所有部门信息
public Department getDepartmentById(Integer id); // 通过id获取部门信息
}
DepartmentServiceImpl
@Service
public class DepartmentServiceImpl implements DepartmentService {
@Autowired
DepartmentMapper departmentMapper;
@Override
public List<Department> getDepartmentList() {
return departmentMapper.getDepartmentList();
}
@Override
public Department getDepartmentById(Integer id) {
return departmentMapper.getDepartmentById(id);
}
}
创建controller
DepartmentController
@RestController // 返回json类型
public class DepartmentController {
@Autowired
DepartmentService departmentService;
// 获取所有部门信息
@GetMapping("/department")
public List<Department> getdepartmentList() {
List<Department> departmentList = departmentService.getDepartmentList();
return departmentList;
}
// 通过id获取部门信息
@GetMapping("/department/{id}")
public Department getdepartmentById(@PathVariable("id") Integer id) {
Department department = departmentService.getDepartmentById(id);
return department;
}
}
打印SQL日志
logging:
level:
com.kaung.mapper: debug
学习资料来源: