Mybatis分页插件更新
2024-10-19 01:21:12
分页插件演示:http://blog.csdn.net/isea533/article/details/23831273
分页插件演示样例:http://blog.csdn.net/isea533/article/details/24700339
假设你也在用Mybatis。建议尝试该分页插件。一定是最方便使用的分页插件。
下载最新版代码:http://git.oschina.net/free/Mybatis_PageHelper
近期使用分页插件时,发现一些特殊情况下报错的问题,报错的地方经过分析发现时求count时候的參数有问题。
并且是在使用了<foreach>一类的特殊标签时会产生的问题。
<foreach>循环的时候,会定义入參为__frch_item_0,__frch_item_1等等,在第一版的分页插件中。在144行的代码中:
BoundSql countBS = new BoundSql(mappedStatement.getConfiguration(), countSql,
boundSql.getParameterMappings(), boundSql.getParameterObject());
这里构造了查询总数的BoundSql对象。这个对象有一个特殊的字段metaParameters就是存储像foreach中这些特殊參数的。可是BoundSql的默认构造方法没有提供该值的注入。因而在这里的时候会丢失部分參数。就会导致后面找不到对应參数报错的情况出现。
找到原因后,对代码做例如以下改动,在原PageHelper.java的144行以下加入例如以下代码:
//须要将metaParameters赋值过去..
MetaObject countBsObject = SystemMetaObject.forObject(countBS);
MetaObject boundSqlObject = SystemMetaObject.forObject(boundSql);
countBsObject.setValue("metaParameters",boundSqlObject.getValue("metaParameters"));
通过这3行代码将metaParameters的值给countBS对象。
改动之后就不会有问题了。
下载最新版代码:http://git.oschina.net/free/Mybatis_PageHelper
版权声明:本文博客原创文章,博客,未经同意,不得转载。
最新文章
- .net之微信企业号开发(二) 企业号人员身份认证与开发
- win10下安装Ubuntu出现win10无法进入的情况
- codeforces 477B B. Dreamoon and Sets(构造)
- 03---Net基础加强
- UVA 100 - The 3n+1 problem (3n+1 问题)
- java reflection总结
- 【CentOS7】yum 软件管理
- CCIE-MPLS基础篇-实验手册
- 从给数组中的对象去重看Javascript中的reduce()
- Android进阶(十八)AndroidAPP开发问题汇总(二)
- C#中的RDLC报告
- $a=[1,2,3,4,5]; $b=[a,b,c,d,e]; 转成[[1,a],[2,b],[3,c],[4,d],[5,3]]
- GlashFish部署的程序时好时坏,无法访问时报404
- VMware搭建虚拟机服务器
- java JDBC (五) properties配置文件
- hadoop-1
- Python endswith() 函数
- C# 窗口自适应窗口宽度和高度
- CSS3制作美丽的3D表单
- 虚拟内存(VirtualAlloc),堆(HeapAlloc/malloc/new)和Memory Mapped File
热门文章
- cocos2d-x截图功能clippingnode它也可用于——白费
- 数据一致性(consistency)、服务可用性(availability)、分区容错性(partition-tolerance)
- 从lca到树链剖分 bestcoder round#45 1003
- SQL Server :理解IAM 页
- WPF Media 简单的播放器
- asp.net不能调试,配置一切正常
- simpleDateFormat日期格式转换
- centos安装和卸载软件
- 在汉澳sinox2014建立ZFS高可靠文件存储系统
- C# WinForm多线程(一)Thread类库