dao
层的mybatis
查询中为了简便操作,已经为程序员封装了动态sql
,其中便于处理in
语句的就是大名鼎鼎的foreach
标签,虽然直接在标签内部指定循环开始的头部,尾部,以及分隔符号,但是无奈何效率实在是太低了,数据量只停留在几百条还是能处理的,但是一旦上了数据量,查询的效率明显降低,他底层是循环拼接,这里经过多次我的调试,利用字符串拼接成sql
的效率显然高于foreach
的查询效率。
封装一个类用来处理StringBuilder
拼接sql,这样能保证sql语句的执行次数只有一次,查询效率相比mybatis能提升很多。
笔者实力有限,菜鸡阶段,对于mybatis的底层实现原理还是不太清晰,结论由笔者反复测试所得,如有不对敬请批评指正!