Mybatis实现分页的注意点

网友投稿 271 2023-04-27


Mybatis实现分页的注意点

前面的话:使用拦截器给Mybatis进行分页的教程在网上有很多,这里记录的主要是我在使用的时候中间走的弯路,记录下来,也好给后面想要学习Mybatis分页拦截的小伙伴们提供点帮助。

1. 拦截器获取参数,判断是否有Page类

1) 使用ThreadLocal 获取

//获取ThreadLocaleRdjGoQ

private static ThreadLocal pageLocal = new ThreadLocal();

private Page getPage() {

return pageLocal.get();

}

2) 从boundsql里面获取

BoundSql boundSql = delegate.getBoundSql();

Object parameterObject = boundSql.getParameterObject();

Page page = this.getPage(parameterObject);

private Page getPage(Object parameterObject) {

Page page = null;

if (parameterObject instanceof Page) {

page = (Page) parameterObject;

} else if (parameterObject instanceof Map) {

for (Object val : ((Map, ?>) parameterObject).values()) {

if (val instanceof Page) {

page = (Page) val;

}

}

}

return page;

}

2. 重载plugin方法

@Override

public Object plugin(Object target) {

if (target instanceof StatementHandler) {

return Plugin.wrap(target, this);

} else {

return targeeRdjGoQt;

}

}

总结

以上所述是给大家介绍的Mybatis实现分页的注意点,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:接口mock测试都需要哪些工具(mockito 接口)
下一篇:Vue AST源码解析第一篇
相关文章

 发表评论

暂时没有评论,来抢沙发吧~