快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记怡情娱乐苹果下载_机器人论坛



近来在进修iBatis的分页功能,iBatis默认的分页是采纳游标滚动的要领来实现的,这种要领在大年夜数据量的环境下便会OOM了,是以一样平常都采纳手写分页SQL语句应用数据库物理分页要领实现,参考了网上很多网友所写的若何实现像hibernate一样应用方言的要领来实现分页功能,基础上一模一样都是承袭com.ibatis.sqlmap.engine.execution.SqlExecutor类然后在spring中进行注入等等,操作繁杂编码甚多,措施弗成取。

别的还有些是改动iBa和记怡情娱乐苹果下载tis的jar包来实现,本人感觉这种措施更弗成取。

基于网友们的思惟,自己实现了另一种措施,不用改动源码,不用在spring中做任何设置设置设备摆设摆设即可实现物理分页功能:

前提

1、JVM类的加载是经由过程Class.forName(String cls)来实现,根据这个道理可以自己写一个与com.ibatis.sqlmap.engine.execution.SqlExecutor同名类;

2、java web类的加载顺序是:首先是web容器的相关类与jar包,然后是web工程下面WEB-INF/classes/下的和记怡情娱乐苹果下载所有类,着末才是WEB-INF/li和记怡情娱乐苹果下载b下的所有jar包;

有了以上的先决前提就好办了,可以在你的项目src目录下建包com.ibatis.sqlmap.engine.execution,然后在此包下建类SqlExecutor,然后把iBatis包下的这个类的源码复制进来后做小小篡改,原本的executeQuery措施改成私有、换名,换成什么名称随便,然后新建一个公有的executeQuery措施,分页功能就在这个措施体内实现;

这样一来,web容器首会找到WEB-INF/classes下的com.ibatis.sql和记怡情娱乐苹果下载map.engine.execution.SqlExecutor这个类,因而会轻忽掉落在ibatis包中的这个类,即实现了自定义的分页功能,又不用去破坏ibatis的包;

还有一点,也可以将自定义的这个类打成jar包放到lib中去,不过这时就要留意了,jar包的名称必然要在ibatis包的名称之前,也便是说ibatis-2.3.4.726.jar,那么这个jar就可以写成ibatis-2.3.4.725.jar,或和记怡情娱乐苹果下载者字母在ibatis这几个字母之前,这样才能精确加载自己写的那个类。

贴上代码:

SqlExecutor.java

Java代码

您可能还会对下面的文章感兴趣: