本文共 7661 字,大约阅读时间需要 25 分钟。
springboot整合MyBatis
官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
Maven仓库地址:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter/2.1.3
数据库提供:
mysql> use springbootDatabase changedmysql> show tables;+----------------------+| Tables_in_springboot |+----------------------+| user |+----------------------+1 row in set (0.00 sec)mysql> create table Department( -> id int primary key, -> departmentName varchar(20) not null -> );Query OK, 0 rows affected (0.10 sec)mysql> show tables;+----------------------+| Tables_in_springboot |+----------------------+| department || user |+----------------------+2 rows in set (0.00 sec)mysql> select * from department;+----+----------------+| id | departmentName |+----+----------------+| 1 | JJ |+----+----------------+1 row in set (0.00 sec)mysql> create table employee( -> id int primary key, -> last_name varchar(30) not null, -> email varchar(50) not null, -> gender int not null, -> department int not null, -> birth Date not null -> );Query OK, 0 rows affected (0.02 sec)mysql> show tables;+----------------------+| Tables_in_springboot |+----------------------+| department || employee || user |+----------------------+3 rows in set (0.00 sec)
1.导入依赖坐标(使用Druid数据库连接池,添加依赖:(参考)
org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.3
2.在application.yml中配置数据库
上一篇已经配置数据源了,不再赘述了:https://blog.csdn.net/qq_45824905/article/details/117327739?spm=1001.2014.3001.5501https://blog.csdn.net/qq_45824905/article/details/117324141---------------------------------------------------------------mapper映射文件配置方式一:在resources目录下,也是开发最常用的。#mybatis 配置mybatis: #mybatis映射文件存放路径 mapper-locations: classpath:/mapper/*.xml type-aliases-package: com.austin.pojo configuration: #下划线驼峰式的配置 map-underscore-to-camel-case: true#分页配置pagehelper: helper-dialect: mysql#显示dao层 执行的SQL语句logging: level: com: austin: mapper: debug
3.测试数据库切换是否成功
4.创建实体类(Lombok)
@Data@NoArgsConstructor@AllArgsConstructorpublic class Department { private Integer id; private String departmentName;}--------------------------------------------------------------------------------------@Data@AllArgsConstructor@NoArgsConstructorpublic class Employee { private Integer id; private String lastName; private String email; private Integer departmentName; private Integer gender; private Date birth; private Department eDepartment; }
5.创建mapper接口和mapper的映射文件
mapper映射文件存放位置:
@Mapper@Repositorypublic interface DepartmentMapper { //获取部门全部信息 Department selectList(); //通过id获取全部部门 Department queryDepartmentById(Integer id);}---------------------------------------------------------------------------------------@Mapperpublic interface EmployeeMapper { // 新增员工 int save(Employee employee); //查询所有的员工 ListselectEmployee(); //通过id查询 Employee selectEmployeeById(Integer id); //通过id删除 Integer deleteEmployeeById(Integer id);}
--------------------------------------------------------------------- insert into employee (last_name, email, gender, dname, birth) values (#{lastName}, #{email}, #{gender}, #{departmentName}, #{birth}) delete from employee where id = #{id}
6.maven配置资源过滤问题
src/main/java **/*Mapper.xml **/*.properties src/main/resources **/*.*
7.编写service测试
@Servicepublic interface DepartmentService { Department selectList(); Department queryDepartmentById(Integer id);}@Servicepublic class DepartmentServiceImpl implements DepartmentService { @Autowired private DepartmentMapper departmentMapper; @Override public Department selectList() { return departmentMapper.selectList(); } @Override public Department queryDepartmentById(Integer id) { return departmentMapper.queryDepartmentById(id); }}-------------------------------------------------------------------------------------@Servicepublic interface EmployeeSerive { Integer save(Employee employee); ListselectEmployee(); Employee selectEmployeeById(Integer id); Integer deleteEmployeeById(Integer id);}@Servicepublic class EmployeeServiceImpl implements EmployeeSerive { @Autowired private EmployeeMapper employeeMapper; @Override public Integer save(Employee employee) { return employeeMapper.save(employee); } @Override public List selectEmployee() { return employeeMapper.selectEmployee(); } @Override public Employee selectEmployeeById(Integer id) { return employeeMapper.selectEmployeeById(id); } @Override public Integer deleteEmployeeById(Integer id) { return employeeMapper.deleteEmployeeById(id); }}
8.编写controller层
@Controllerpublic class DepartmentController { @Autowired private DepartmentService departmentService; @GetMapping("/list") @ResponseBody public Department getList() { return departmentService.selectList(); } @GetMapping("/list/{id}") @ResponseBody public Department queryDepartmentById(@PathVariable Integer id) { return departmentService.queryDepartmentById(id); }}--------------------------------------------------------------------------------- @Controllerpublic class EmployeeController { @Autowired private EmployeeSerive employeeSerive; @GetMapping("/add") @ResponseBody public Integer save() { Employee ep = new Employee(); ep.setLastName("lxx"); ep.setEmail("lxx@qq.com"); ep.setBirth(new Date()); ep.setDepartmentName(1); ep.setGender(1); Integer i = employeeSerive.save(ep); return i; } @GetMapping("/ListDe") @ResponseBody public ListselectEmployeeList() { List employees = employeeSerive.selectEmployee(); for (Employee employee : employees) { System.out.println(employee); } return employees; } @GetMapping("/listDe/{id}") @ResponseBody public Employee selectEmployeeById(@PathVariable("id") Integer id) { return employeeSerive.selectEmployeeById(id); } @GetMapping("/deleteDe/{id}") @ResponseBody public Integer deleteEmployeeById(@PathVariable("id") Integer id) { return employeeSerive.deleteEmployeeById(id); }}
9.启动项目,访问测试
测试完毕