注意事项.md
1. 多参传递问题⚓
有多个参数传入时,不能直接根据参数名识别,要变成arg0、arg1
来映射参数。也可以在方法的参数中加上@Param("")
来实现。
<update id="updateTags">
<include refid="updateBlog"/>
tags = #{arg1}
WHERE id = #{arg0}
</update>
void updateTitle(@Param("id") int id, @Param("title") String title);
2. 返回更新条目的数量问题⚓
mybatis可以在Mapper
中的方法加上int
类型的返回值来表示影响了多少条数据,需要在数据库的url
加上useAffectedRows=true
参数。
jdbc.url=jdbc:mariadb://192.168.216.3:3306/blog?useAffectedRows=true
3. 事务⚓
事务的概念可以描述为具有以下四个关键属性说成是 ACID:
- 原子性:事务应该当作一个单独单元的操作,这意味着整个序列操作要么是成功,要么是失败的。
- 一致性:一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。即如果事务是并发多个,系统也必须如同串行事务一样操作。
- 隔离性:可能同时处理很多有相同的数据集的事务,每个事务应该与其他事务隔离,以防止数据损坏。
- 持久性:一个事务一旦完成全部操作后,这个事务的结果必须是永久性的,不能因系统故障而从数据库中删除。