java开发之Jdbc分页源码详解
总之是用jdbc的游标移动
packagecom.sp.person.sql.util; importjava.sql.Connection; importjava.sql.PreparedStatement; importjava.sql.ResultSet; importjava.sql.SQLException; importjava.util.Map; importjava.util.TreeMap; importjavax.sql.DataSource; /** *常常有同事在问JDBC分页查询这里给二个例子介绍一下 *JDBC分页查询 *分成二种方式希望对大家有所帮助 *分另表示了absolute与relative的区别 *@see这时用到一个数据源设计模式 *数据源与数据库连接没有关系 *例用接口回调的特性 *@authorliuqing *@version1.0 * */ publicclassJdbcUtil{ /** *数据源 */ privateDataSourcedataSource; /** *不否启用多数据源 */ privatebooleanisMultipleDataSource; /** *有时一个系统可能要使用多个数据源,存放多个数据源 */ privateMapdataSources=newTreeMap (); /** *iftrueisMultipleDataSourceisKeytoDataSource */ privateStringdataSourceKey; /** *默认构造器 */ publicJdbcUtil(){ } /** *构造器Spring的构造器注入 *@paramdataSource */ publicJdbcUtil(DataSourcedataSource){ this.dataSource=dataSource; } /** *JDBC分页查询 *@paramsqlSQL查询语句 *@paramfirstSize起始页 *@parammaxSize返回数据条数 *@returnResultSet *@throwsSQLException */ publicResultSetqueryPageAbsolute(Stringsql, intfirstSize,intmaxSize)throwsSQLException{ PreparedStatementpre=this.getConn().prepareStatement(sql); pre.setMaxRows(maxSize); ResultSetrs=pre.executeQuery(); rs.absolute(firstSize*maxSize); returnrs; } /** *JDBC分页查询 *@paramsqlSQL查询语句 *@paramfirstSize起始页 *@parammaxSize返回数据条数 *@returnResultSet返回结果集 *@throwsSQLException */ publicResultSetqueryPageRelative(Stringsql, intfirstSize,intmaxSize)throwsSQLException{ PreparedStatementpre=getConn().prepareStatement(sql); pre.setMaxRows(maxSize); ResultSetrs=pre.executeQuery(); rs.relative(firstSize); returnrs; } /** * *@returnConnection *@throwsSQLException */ privateConnectiongetConn()throwsSQLException{ //使用多数据源的情况 if(this.isMultipleDataSource){ DataSourcev_dataSource=this.queryDataSourceByKey(); if(v_dataSource!=null){ returnv_dataSource.getConnection(); } } returnthis.dataSource.getConnection(); } /** *获得多数据源方法 *@returnDataSource */ publicDataSourcequeryDataSourceByKey(){ for(Map.Entry ds:this.dataSources.entrySet()){ if(ds.getKey().equals(dataSourceKey)){ returnds.getValue(); } } returnnull; } /** *获得多数据源方法 *@returnDataSource */ publicDataSourcequeryDataSourceByKey(StringuseKey){ for(Map.Entry ds:this.dataSources.entrySet()){ if(ds.getKey().equals(useKey)){ returnds.getValue(); } } returnnull; } /** *数据源 */ publicDataSourcegetDataSource(){ returndataSource; } /** *数据源setter注入 */ publicvoidsetDataSource(DataSourcedataSource){ this.dataSource=dataSource; } /** *@returntheisMultipleDataSource */ publicbooleanisMultipleDataSource(){ returnisMultipleDataSource; } /** *@paramisMultipleDataSourcetheisMultipleDataSourcetoset */ publicvoidsetMultipleDataSource(booleanisMultipleDataSource){ this.isMultipleDataSource=isMultipleDataSource; } /** *@returnthedataSources */ publicMap getDataSources(){ returndataSources; } /** *@paramdataSourcesthedataSourcestoset */ publicvoidsetDataSources(Map dataSources){ this.dataSources=dataSources; } /** *返回当前使用的数据源 *@returnthedataSourceKey */ publicStringgetDataSourceKey(){ returndataSourceKey; } /** *要使用的数据源为 *@paramdataSourceKeythedataSourceKeytoset */ publicvoidsetDataSourceKey(StringdataSourceKey){ this.dataSourceKey=dataSourceKey; } }
更多关于java开发之Jdb分页源码实例请查看下面的相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。