Mybatis实现分页的注意点
前面的话:使用拦截器给Mybatis进行分页的教程在网上有很多,这里记录的主要是我在使用的时候中间走的弯路,记录下来,也好给后面想要学习Mybatis分页拦截的小伙伴们提供点帮助。
1.拦截器获取参数,判断是否有Page类
1)使用ThreadLocal获取
//获取ThreadLocal privatestaticThreadLocalpageLocal=newThreadLocal (); privatePagegetPage(){ returnpageLocal.get(); }
2)从boundsql里面获取
BoundSqlboundSql=delegate.getBoundSql();
ObjectparameterObject=boundSql.getParameterObject();
Pagepage=this.getPage(parameterObject);
privatePagegetPage(ObjectparameterObject){
Pagepage=null;
if(parameterObjectinstanceofPage){
page=(Page)parameterObject;
}elseif(parameterObjectinstanceofMap){
for(Objectval:((Map,?>)parameterObject).values()){
if(valinstanceofPage){
page=(Page)val;
}
}
}
returnpage;
}
2.重载plugin方法
@Override
publicObjectplugin(Objecttarget){
if(targetinstanceofStatementHandler){
returnPlugin.wrap(target,this);
}else{
returntarget;
}
}
总结
以上所述是小编给大家介绍的Mybatis实现分页的注意点,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西