web后端开发进阶
一、新增员工
1.知识点
批量插入数据
使用xml中foreach标签
<insert id="insertBatch" > insert into emp_expr (emp_id,begin,end,company,job) values <foreach collection="list" item="empExpr" separator=","> (#{empExpr.empId},#{empExpr.begin},#{empExpr.end},#{empExpr.company},#{empExpr.job}) </foreach> </insert>获取插入主键id
使用注解@Options()
@Options(useGeneratedKeys = true,keyProperty = "id") @Insert("insert into emp(username, name, gender, phone, job, salary, image, entry_date, dept_id, create_time, update_time)" + " values (#{username}, #{name}, #{gender},#{phone},#{job},#{salary},#{image},#{entryDate},#{deptId},#{createTime},#{updateTime})") void insert(Emp emp);这样再插入数据时将会返回id值
2.具体实现
mapper
*@Mapper
public interface EmpMapper {
Listlist(EmpQueryParam q);
@Options(useGeneratedKeys = true,keyProperty = "id")
@Insert("insert into emp(username, name, gender, phone, job, salary, image, entry_date, dept_id, create_time, update_time)" +
" values (#{username}, #{name}, #{gender},#{phone},#{job},#{salary},#{image},#{entryDate},#{deptId},#{createTime},#{updateTime})")
void insert(Emp emp);
}
```
service
*@Override public void save(Emp emp) { emp.setCreateTime(LocalDateTime.now()); emp.setUpdateTime(LocalDateTime.now()); empMapper.insert(emp); List<EmpExpr> list = emp.getExprList(); if(!list.isEmpty()){ list.forEach(item->{ item.setEmpId(emp.getId()); }); empExprMapper.insertBatch(list); } }controller
*@PostMapping public Result save(@RequestBody Emp emp){ log.info("新增员工,参数:{}",emp); empService.save(emp); return Result.success(); }
二、事务
1.定义
事务 是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作 要么同时成功,要么同时失败。
默认MySQL的事务是自动提交的,也就是说,当执行一条DML语句,MySQL会立即隐式的提交事务。
2.具体操作
数据库中
*
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
已在FreeBuf发表 0 篇文章
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)




