在使用MyBatis时,通常使用逆向工程工具生成一套接口和xml映射文件用于简单的单表操作,而其中有两个比较常用的接口方法:
一个是updateByExample,一个是 updateByExampleSelective 。
它们的作用是对数据库进行更新操作。
通过查看逆向工程的xml映射文件可以发现,这两个方法的区别是:
updateByExample的代码为:
<
可以看出:
updateByExample需要将表的条件全部给出,比如一个表中有三个字段,就必须给三个字段给它,不给会设为null
updateByExampleSelective的代码为:
<
而updateByExampleSelective不同,当某一实体类的属性为null时,mybatis会使用动态sql过滤掉,不更新该字段
总结:虽然MyBatis逆向工程很好用,可以帮我们自动生成代码,但还是使用的时候需要注意一下细节。