HashMap查询 多次点击最终稳定在37秒左右
Mybaits批量查询 多次点击最终稳定在25秒左右
HashMap查询 多次点击最终稳定在42秒左右
Mybaits批量查询 多次点击最终稳定在35秒左右
HashMap查询 多次点击最终稳定在44秒左右
Mybaits批量查询 多次点击最终稳定在45秒左右
HashMap查询 多次点击最终稳定在43秒左右
Mybaits批量查询 多次点击最终稳定在6秒左右
HashMap查询 多次点击最终稳定在41秒左右
后面数据就不测了,如果你某个项目需要这样一种业务场景,你需要在循环里拿到对应条件进行查询时,
你可以选择把条件都存到集合里,然后再进行Mybaits的批量查询,你也可以先将所有数据查询出来,塞进Map里,然后依次从Map里取出。当你需要的数据占总数据的40%以下时,使用Mybatis批量查询可能更好一些,当数据占比超过40%时,使用Map更好一些。
注:以上数据和结论仅供参考,本人心血来潮进行的一波测试,纯属娱乐!!!
不使用@Param注解时
当传入的参数只有一个时,在test语句中必须使用 _parameter 获取这个参数
在sql中则 #{}可以通过任意的key来获取这个参数
所以这里when test 中使用的_parameter代表这个参数,而在sql中使用#{keyword}代表这个参数
LOCATE(substr,str,pos) 这是sql的函数,返回第一次出现在字符串str的子串substr的位置,从位置pos开始,substr不在str中,则返回0。
所以LOCATE(#{keyword}, pproject_name,1)>0 和 pproject_name = #{keyword} 是不一样的条件。它等价于 pproject_name like ‘%#{keyword}%’,当然这里不能直接这么写,要使用like在mybatis的sql中需要使用CONCAT函数。
LOCATE(#{keyword}, pproject_name,1)>0 等价于 pproject_name like CONCAT('%',#{keyword},'%')
工具是Myeclipse10和mybatis-generator-core-131,数据库是oracle 1下载mybatis-generator-core-131-bundle,导入mybatis-generator-core-131jar和myeclipse311jar 2编写生成器的配置文件generatorConfigxml 这个配置文件是生成器
<select id="getList" parameterType="ActRebate" resultMap="actRebateResultMap">
select t from t_rule_rebate t where (merchantId IS null OR tmerchantid = #{merchantId} )
AND (ztbz IS null OR trim(tztbz) = #{ztbz})
AND (type IS null OR trim(ttype) = #{type})
</select>
传进去的参数就不要在SQL中做处理了。。。。参数在传之前处理。
mybatis的批量 *** 作有两种方式,一是使用foreach标签,二是使用mybatis的BATCH模型
在xml中通过foreach对表数据进行循环 *** 作
在oracle中不支持insert into product(name, type, price) values ('a', 'tv', 1233), ('b', 'ac', 3455),('','','')这种形式的sql,因此oracle批量插入使用 insert all into table() values() into table() values() select from dual; 语句来解决以下方式,并且需要显示指定useGeneratedKeys=false
另一种方法是使用另外一种方法是 insert into table() (select from dual) union all (select from dual)
Mybatis内置的ExecutorType一共有三种,默认为SIMPLE,该模式下它为每个语句的执行创建一个新的预处理语句,并单条提交sql。
而 BATCH 模式会重复使用已经预处理的语句,并且批量执行所有更新语句,显然batch性能将更优;
注意 : batch模式也有自己的问题,比如在Insert *** 作时,在事务没有提交之前,是没有办法获取到自增的id,这在某型情形下是不符合业务要求的。
具体用法如下:
ProductMapperjava 如下:
mapperxml 如下:
以上就是关于测试Mybatis批量查询和使用HashMap查询效率全部的内容,包括:测试Mybatis批量查询和使用HashMap查询效率、mybatis中关于查询传参的问题、mybatis generator 怎么查询数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)