文章目录
- [实战讲稿:Spring Boot使用注解方式整合MyBatis](#实战讲稿:Spring Boot使用注解方式整合MyBatis)
-
- 课程目标
- 课程内容
-
- [1. 创建员工映射器接口](#1. 创建员工映射器接口)
-
- [1.1 创建子包](#1.1 创建子包)
- [1.2 创建接口](#1.2 创建接口)
- [2. 测试员工映射器接口](#2. 测试员工映射器接口)
-
- [2.1 自动装配员工映射器](#2.1 自动装配员工映射器)
- [2.2 测试按标识符查询员工方法](#2.2 测试按标识符查询员工方法)
- [2.3 测试查询全部员工方法](#2.3 测试查询全部员工方法)
- [2.4 测试插入员工方法](#2.4 测试插入员工方法)
- [2.5 测试更新员工方法](#2.5 测试更新员工方法)
- [2.6 测试按标识符删除员工方法](#2.6 测试按标识符删除员工方法)
- [3. 解决字段名与属性名不一致的问题](#3. 解决字段名与属性名不一致的问题)
- [4. 总结](#4. 总结)
- 课后作业
实战讲稿:Spring Boot使用注解方式整合MyBatis
课程目标
- 理解Spring Boot与MyBatis整合的基本概念
- 学会使用注解方式在Spring Boot中创建MyBatis映射器接口
- 掌握基本的CRUD操作
- 学会解决字段名与属性名不一致的问题
课程内容
1. 创建员工映射器接口
1.1 创建子包
- 在
net.huawei.hrsys_ssm
包下创建mapper
子包。
1.2 创建接口
- 在
mapper
子包中创建EmployeeMapper
接口。
java
package net.huawei.hrsys_ssm.mapper;
import net.huawei.hrsys_ssm.bean.Employee;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface EmployeeMapper {
@Insert("insert into employee (age, gender, name, number, dep_id) " +
"values (#{age}, #{gender}, #{name}, #{number}, #{depId})")
int insert(Employee employee);
@Delete("delete from employee where id = #{id}")
int deleteById(int id);
@Update("update employee set age = #{age}, gender = #{gender}, " +
"name = #{name}, number = #{number}, dep_id = #{depId} where id = #{id}")
int update(Employee employee);
@Select("select * from employee where id = #{id}")
Employee findById(int id);
@Select("select * from employee")
List<Employee> findAll();
}
2. 测试员工映射器接口
2.1 自动装配员工映射器
- 使用
@Autowired
注解自动装配EmployeeMapper
。
2.2 测试按标识符查询员工方法
- 创建
testFindById()
测试方法。
java
@Test
public void testFindById() {
int id = 1;
Employee employee = employeeMapper.findById(id);
if (employee != null) {
System.out.println(employee);
} else {
System.out.println("标识符为[" + id + "]的员工不存在~");
}
}
2.3 测试查询全部员工方法
- 创建
testFindAll()
测试方法。
java
@Test
public void testFindAll() {
List<Employee> employees = employeeMapper.findAll();
employees.forEach(System.out::println);
}
2.4 测试插入员工方法
- 创建
testInsert()
测试方法。
java
@Test
public void testInsert() {
Employee employee = new Employee();
employee.setAge(28);
employee.setGender("男");
employee.setName("王强");
employee.setNumber(1013);
employee.setDepId(3);
int count = employeeMapper.insert(employee);
if (count > 0) {
System.out.println("员工记录插入成功~");
System.out.println("插入的新记录:" + employeeMapper.findById(13));
} else {
System.out.println("员工记录插入失败~");
}
}
2.5 测试更新员工方法
- 创建
testUpdate()
测试方法。
java
@Test
public void testUpdate() {
Employee employee = employeeMapper.findById(13);
System.out.println("记录更新前:" + employee);
employee.setAge(25);
employee.setGender("女");
employee.setName("王兰");
employee.setNumber(1088);
employee.setDepId(2);
int count = employeeMapper.update(employee);
if (count > 0) {
System.out.println("员工记录更新成功~");
System.out.println("记录更新后:" + employeeMapper.findById(13));
} else {
System.out.println("员工记录更新失败~");
}
}
2.6 测试按标识符删除员工方法
- 创建
testDeleteById()
测试方法。
java
@Test
public void testDeleteById() {
System.out.println("待删除记录:" + employeeMapper.findById(13));
int count = employeeMapper.deleteById(13);
if (count > 0) {
System.out.println("员工记录删除成功~");
} else {
System.out.println("员工记录删除失败~");
}
}
3. 解决字段名与属性名不一致的问题
- 在
application.properties
或application.yml
中配置MyBatis的map-underscore-to-camel-case
属性值,设置为true
。
4. 总结
- 通过本次实战,我们学会了如何在Spring Boot中使用注解方式整合MyBatis,并进行了基本的CRUD操作。
- 学会了如何测试映射器接口,并解决了字段名与属性名不一致的问题。
课后作业
- 尝试使用XML方式配置MyBatis映射器接口。
- 尝试使用MyBatis进行更复杂的查询操作,如连接查询、分组查询等。