資源簡介
mybatis定時任務列表查詢分頁切割,列表查詢存在風險,在框架的層面使用攔截器完成列表的分頁切割

代碼片段和文件信息
package?com.bqjr.core.util.prepage;
import?java.util.Properties;
import?javax.xml.bind.PropertyException;
import?org.apache.commons.lang3.StringUtils;
import?org.apache.ibatis.executor.Executor;
import?org.apache.ibatis.mapping.MappedStatement;
import?org.apache.ibatis.plugin.Interceptor;
import?org.apache.ibatis.plugin.Intercepts;
import?org.apache.ibatis.plugin.Invocation;
import?org.apache.ibatis.plugin.Plugin;
import?org.apache.ibatis.plugin.Signature;
import?org.apache.ibatis.session.ResultHandler;
import?org.apache.ibatis.session.RowBounds;
import?com.bqjr.core.util.prepage.adapt.PrePageList;
import?com.bqjr.core.util.prepage.compments.DataPageReader;
import?com.bqjr.core.util.prepage.compments.QueryPage;
import?com.bqjr.core.util.prepage.compments.QueryPageMybatisImpl;
@Intercepts({@Signature(type=Executor.classmethod=“query“
args=
{MappedStatement.classobject.classRowBounds.classResultHandler.class}
)})
public?class?PrePagePlugin?implements?Interceptor??{
private?static?String?dialect?=?““; //數據庫方言
private?static?String?pageSqlId?=?““;?//mapper.xml中需要攔截的ID(正則匹配)
private?static?Long?pageSize;
@SuppressWarnings({?“rawtypes“?“unchecked“?})
@Override
public?object?intercept(Invocation?ivk)?throws?Throwable?{?//java.sql.Statement
System.out.println(“調用到了插件“);
MappedStatement?mappedStatement?=?(MappedStatement)?ivk.getArgs()[0];
if(mappedStatement.getId().matches(pageSqlId)){
try?{
QueryPage?qp?=?new?QueryPageMybatisImpl<>(ivk?dialect);
DataPageReader?pd?=?new?DataPageReader<>(qppageSize);
PrePageList?plist?=?new?PrePageList<>(pd);
return?plist;
}?catch?(Exception?e)?{
e.printStackTrace();
throw?new?RuntimeException(“大數據量分頁初始化異常“);
}
}
return?ivk.proceed();
}
@Override
public?object?plugin(object?arg0)?{
return?Plugin.wrap(arg0?this);
}
@Override
public?void?setProperties(Properties?p)?{
dialect?=?p.getProperty(“dialect“);
if?(StringUtils.isEmpty(dialect))?{
try?{
throw?new?PropertyException(“dialect?property?is?not?found!“);
}?catch?(PropertyException?e)?{
e.printStackTrace();
}
}
pageSqlId?=?p.getProperty(“pageSqlId“);
if?(StringUtils.isEmpty(pageSqlId))?{
try?{
throw?new?PropertyException(“pageSqlId?property?is?not?found!“);
}?catch?(PropertyException?e)?{
e.printStackTrace();
}
}
pageSize?=?new?Long(p.getProperty(“pageSize“?“5000“));
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????????73??2017-11-07?10:39??mybatis-querypage\read-me.txt
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\
?????文件????????1433??2017-11-06?18:20??mybatis-querypage\.classpath
?????文件?????????569??2017-11-06?18:13??mybatis-querypage\.project
?????目錄???????????0??2017-11-06?18:20??mybatis-querypage\.settings\
?????文件??????????93??2017-11-06?18:20??mybatis-querypage\.settings\org.eclipse.core.resources.prefs
?????文件?????????736??2017-11-06?18:16??mybatis-querypage\.settings\org.eclipse.jdt.core.prefs
?????文件??????????90??2017-11-06?18:13??mybatis-querypage\.settings\org.eclipse.m2e.core.prefs
?????文件????????1109??2017-11-06?18:17??mybatis-querypage\pom.xm
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\main\
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\main\java\
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\main\java\com\
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\main\java\com\bqjr\
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\main\java\com\bqjr\core\
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\main\java\com\bqjr\core\util\
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\
?????文件????????2560??2017-11-06?17:20??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\PrePagePlugin.java
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\adapt\
?????文件????????4267??2017-11-06?18:20??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\adapt\PrePageList.java
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\compments\
?????文件????????2017??2017-11-06?17:42??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\compments\DataPageReader.java
?????文件?????????226??2017-11-06?09:56??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\compments\QueryPage.java
?????文件????????5131??2017-11-06?17:42??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\compments\QueryPageMybatisImpl.java
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\helper\
?????文件????????1994??2017-11-06?09:53??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\helper\ReflectHelper.java
?????文件?????????407??2017-11-06?17:55??mybatis-querypage\src\main\java\com\bqjr\core\util\prepage\mybatis-config-demo.xm
?????目錄???????????0??2017-11-06?18:20??mybatis-querypage\src\main\resources\
?????目錄???????????0??2017-11-06?18:13??mybatis-querypage\src\test\
?????目錄???????????0??2017-11-06?18:20??mybatis-querypage\src\test\java\
?????目錄???????????0??2017-11-06?18:20??mybatis-querypage\src\test\resources\
............此處省略27個文件信息
評論
共有 條評論