Skip to content

注意事项.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

  • 原子性:事务应该当作一个单独单元的操作,这意味着整个序列操作要么是成功,要么是失败的。
  • 一致性:一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。即如果事务是并发多个,系统也必须如同串行事务一样操作。
  • 隔离性:可能同时处理很多有相同的数据集的事务,每个事务应该与其他事务隔离,以防止数据损坏。
  • 持久性:一个事务一旦完成全部操作后,这个事务的结果必须是永久性的,不能因系统故障而从数据库中删除。