本文共 1899 字,大约阅读时间需要 6 分钟。
写法一:
XML
BEGIN UPDATE v_cqms_qcsample c SET CQMS_FLAG = '1' where 'XN_' || ID = #{item.ID,jdbcType = VARCHAR} ;END;
service部分代码:
long t1 = System.currentTimeMillis();qcsampleMapper.updateFlagList(qcsampleList);long t2 = System.currentTimeMillis();System.out.println(t2-t1);
执行结果:59645
这种写法的形式是把所有的sql写好后,一起提交给数据库去执行,实际也是一个个子sql更新语句。
方法二
XML:
UPDATE v_cqms_qcsample c SET CQMS_FLAG = '1' WHERE ('XN_' || ID = (#{item.ID,jdbcType = VARCHAR}))
后台打印的sql语句:
UPDATE v_cqms_qcsample c SET CQMS_FLAG = '1' WHERE ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?)) or ('XN_' || ID = (?))
执行结果(同样的49条语句):35681
总的说来,后面执行一条sql语句的效率远高于多条sql语句的执行。还有需要说明的是,这里只是简单的执行啦两种情况,并没有去深究底层原理。为了更灵活的使用mybatis,建议去仔细学习了解mybatis标签,相信会对数据库的操作更得心应手。
我是简单,一个爱学习,爱分享的精神小伙。
转载地址:http://purii.baihongyu.com/