spring boot--04

一、新增操作(基础版)

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 根据主键更新数据 表单修改、数据更新场景
相关推荐
极光代码工作室31 分钟前
基于SpringBoot的课程预约系统
java·springboot·web开发·后端开发
Leighteen1 小时前
`try-finally` 里的 `return`:为什么 `finally` 会悄悄改掉返回值、吞掉异常
java·开发语言
名字还没想好☜2 小时前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine
圆山猫2 小时前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v
caishenzhibiao2 小时前
期货先行者主图 同花顺期货通指标
java·c语言·c#
史呆芬3 小时前
分布式事务实战:微服务跨服务数据一致性解决方案
java·后端·spring cloud
IT界的老黄牛3 小时前
限流命中后该怎么办:直接丢、阻塞等待、延迟重投三种姿势的取舍
java·rocketmq·redisson·令牌桶·削峰·分布式限流
daad7774 小时前
记录matlab状态机demo
java·网络·matlab
牡丹雅忻14 小时前
AES 加密模式演进:从 ECB、CBC 到 GCM 的 C# 深度实践
java·开发语言·c#
paopaokaka_luck4 小时前
基于springboot3+vue3的智能文库平台(AI智能搜索、AI智能汇总、实时在线状态展示、多格式文档预览与富文本编辑、Echarts图形化分析)
前端·网络·spring boot·网络协议·echarts