利用Mybatis的动态SQL实现物理分页.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Mybatis的动态SQL实现物理分页.doc

利用Mybatis的动态SQL实现物理分页 摘要:实际项目中,经常会遇到分页的问题,mybatis自带的分页使用的是内存分页,如果数据量较大,那么必定 会发生内存溢出。本文提出一种方法,利用mybatis强大的动态sql,为查询语句加上物理分页功能。 关键词:mybatis 动态sql 分页 物理分页 the use of dynamic sql implementation mybatis physical page chen-ling xia-xun luzhou vocational and technical college,sichuan,luzhou,646005,china abstracts:actual projects, the problems often encountered pages, mybatis own page using paging, if the data is large, then there must be a memory overflow occurs. this paper presents a method, using mybatis powerful, dynamic sql, the query with the physical paging. keywords:mybatis dynamic sql paging physical page 1、mybaits 简介 mybatis,前称ibatis,后改名为mybatis,截止本文成文,最新版本是3.0.6。它和hibernate是java世界使用最多的两种orm框架。hibernate理念最为先进,完全实现面向对象的数据库编程,不需要掌握sql语句,即可实现数据库操作,能够节省开发人员编写大量sql语句的时间。但是,hibernate在处理多表关联时,可能会出现n+1问题,性能会有较大影响,要解决性能问题,需要较深的hibernate知识和项目经验。mybatis需要自己写sql语句,开发效率不如hibernate,很难做到底层多数据库的通用。但对程序员来说有更高的可控性,可以更容易的对sql语句进行优化,提高效率。 在开发中直接使用jdbc一个非常普遍的问题就是动态sql。如果参数值、参数本身和数据列都是动态sql,通常的解决方法就是写很多if-else条件语句和字符串连接。而mybatis通过ognl提供了一套非常清晰的方法来解决动态sql的问题。 2、实现mysql的物理分页 mysql使用limit子句来实现数据库的物理分页,limit子句接受一个或两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数量。在mybatis中,只需要在相应的查询语句后,加上limit子句,即可实现物理分页。如下,以一个只有字段id,name,age的表为例。该配置会根据传入的hashmap,如果含有键start和键end,那么即通过mybatis强大的动态sql,生成含有mysql分页的sql语句。 select * from users limit #{start},#{end} 3、实现oracle的物理分页 oracle数据库的物理分页,相对mysql没有那么方便,使用rownum嵌套查询来实现分页,为简化配置,在mybatis中定义一个oracle的分页配置xml文件,其它实体映射文件引入该文件即可。分页配置xml文件主要代码如下: select * from ( select row_.*, rownum rownum_ from ( ) row_ where rownum #{start} 在需要做分页的查询语句中,最开始的位置引入head部分,最后的位置引入tail部分,如果在传入的hashmap,有键start和键end,即会动态生成含有oracle物理分页的sql语句。 select * from users 4、结语 分页查询是系统开发中常用的功能,mybatis 3和ibatis 2自带的分页,使用的是内存分页,即将所有数据读取到内存,然后判断要显示哪些条目。如果数据量比较大,毫无疑问会发生内存溢出,客户端获取数据很慢甚至无法获取到数据,因此,实际开发中,使用较多的是利用数据库自带的分页语句来实现物理分页。本文讲述了如何为mybatis 3添加mysql和oracle的物理分页功能。 参考文献 [1]李辉,王瑞波.多条件分页查询优化的设计方法[j].计算机工程,2010,2. [2]李刚.轻量级java ee企业应用实战[m].电子工业出版社,2011.

文档评论(0)

cnsg + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档