纯sql分页源码java版

  • p4_908754
    了解作者
  • 86.1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-14 06:17
    上传日期
纯sql分页源码java版、提供了oracle、mysqlser、mysql三种版本的代码
26105520705.rar
内容介绍
致谢: 在这里我要感谢好友软件日志,是他在我的软件生涯中提出了很多有意义的想法!是他在我烦恼的时候 陪我聊天! 说明: (1)写分页程序的相关类的想法来源于好友(软件日志:qq呢称)。并由他提出了ms sqlserver下的分页sql的实现, 个人感觉不错,故产生了完成相关通用类的念头 (2)ms sqlserver下的分页sql原理:通过正序与反序记录集之差获得所需页的记录集。 参见:org.derrick.jdbc.page.sql.MssqlPageSqlHelper 设有表:CREATE TABLE[pageDemo] ( [id] [int] NOT NULL , [name] [nvarchar] (50) , [createDate] [datetime] ) 当然id是主键啦。,设共有1000条记录,id的值从1到1000,每页记录数为100。 则:select top 100 * from (select top 1000 * from pageDemo a order by a.id desc) b order by b.id asc 返回第1页记录。 则:select top 100 * from (select top 800 * from pageDemo a order by a.id desc) b order by b.id asc 返回第3页记录。 (3)my sql 下的分页原理是利用limit,参见org.derrick.jdbc.page.sql.MysqlPageSqlHelper (4)oracle 分页原理是利用rownum,参见org.derrick.jdbc.page.sql.OraclePageSqlHelper (5) 第三方库文件:log4j.jar,commons-beanutils.jar,jtds.jar(mssqlserver数据库驱动) (6) 运行test 之前请先检查是否拥有相关的数据库驱动: 参见配置文件oracle.config(oracle官方驱动)mssqldb.config(微软官方驱动),mssqljtdsdb.config(jtds驱动),mysqldb.config(mysql官方驱动) 并创建相应的测试表: //oracle CREATE TABLE pageDemo ( id number(10) NOT NULL , name nvarchar2(50) , createDate date , CONSTRAINT KEY PRIMARY KEY (ID) ) ; //mysql CREATE TABLE `pagedemo` ( `id` int(10) unsigned NOT NULL default '0', `name` varchar(45) default NULL, `createDate` datetime default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk; //ms sqlserver CREATE TABLE [pageDemo] ( [id] [int] NOT NULL , [name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [createDate] [datetime] NOT NULL ) ON [PRIMARY] GO ALTER TABLE [pageDemo] ADD CONSTRAINT [PK_pageDemo] PRIMARY KEY CLUSTERED ( [id] ) ON [PRIMARY] GO 总结:目前这组通用类只提供了oracle、mysqlser、mysql三种版本的代码,其余数据库版本代码有兴趣的朋友可以实现,不过sysbase数据库 我没有找到对应的实现方式,具体使用方法参见test类:org.derrick.jdbc.page.TestPageHelper及对应数据库子类。 欢迎交流!我的qq是370922517(llz),邮箱:liudongbaollz@sohu.com 源码还包括部分工作过程使用的工具类,有兴趣的朋友可以自己看看
评论
    相关推荐