一、新增操作(基础版)
1. 场景说明
新增员工数据,对应前端 "新增员工" 表单。
2. SQL 语句
sql
insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time)
values ('songyuanqiao','宋远桥',1,'1.jpg',2,'2012-10-09',2,'2022-10-01 10:00:00','2022-10-01 10:00:00');
3. Mapper 接口方法
java
运行
@Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time) " +
"values(#{username}, #{name}, #{gender}, #{image}, #{job}, #{entrydate}, #{deptId}, #{createTime}, #{updateTime})")
public void insert(Emp emp);
二、新增操作(主键返回版)
1. 场景说明
新增数据后需要获取数据库自动生成的主键,例如:
- 新增套餐时,需要先保存套餐信息,获取
套餐ID,再维护套餐与菜品的关联关系表。
2. 实现方式
通过@Options注解开启主键返回:
java
运行
// keyProperty: 实体类中接收主键的属性名;useGeneratedKeys: 开启获取自增主键
@Options(keyProperty = "id", useGeneratedKeys = true)
@Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time) " +
"values(#{username}, #{name}, #{gender}, #{image}, #{job}, #{entrydate}, #{deptId}, #{createTime}, #{updateTime})")
public void insert(Emp emp);
3. 效果
调用insert方法后,传入的emp对象的id属性会被自动赋值为数据库生成的主键值,后续可直接使用该id进行关联操作。
三、更新操作(根据 ID 更新)
1. 场景说明
修改员工信息,对应前端 "修改员工" 表单,根据主键id更新数据。
2. SQL 语句
sql
update emp set username = 'songdaxia', name = '宋大侠', gender = 1, image = '1.jpg', job = 2, entrydate = '2012-01-01', dept_id = 2, update_time = '2022-10-01 12:12:12' where id = 19;
3. Mapper 接口方法
java
运行
@Update("update emp set username=#{username}, name=#{name}, gender=#{gender}, image=#{image}, job=#{job}, " +
"entrydate=#{entrydate}, dept_id=#{deptId}, update_time=#{updateTime} where id=#{id}")
public void update(Emp emp);
四、核心知识点总结
表格
| 操作 | 关键注解 | 核心作用 | 适用场景 |
|---|---|---|---|
| 基础新增 | @Insert |
插入数据 | 无需后续关联操作的简单新增 |
| 带主键返回新增 | @Insert + @Options |
插入数据并获取自增主键 | 新增主表数据后,需维护关联表数据 |
| 更新 | @Update |
根据主键更新数据 | 表单修改、数据更新场景 |