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实现分页的注意点,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!