- 浏览: 284604 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
CodeLove:
如果包含<,(,)...等特殊字符呢
Python变量名检测 -
zlxzlxzlxzlxzlx:
这不能算是任意进制之间的转换,只能算是 2、8、10、16 几 ...
java实现的任意进制转换 -
mychaoyue2011:
在本地执行了几遍,结果都是:s2开始休眠s1开始休眠s2休眠结 ...
Java线程学习笔记(四)线程join -
chxiaowu:
不错!
Java版的树 -
TenAclock:
这个例子 做不到“学生都交完” 考试结束,只能做到等到考试时间 ...
Java线程学习笔记(十一) DelayQueue的应用
SqlServer的一个分页工具类,主要功能有为据传入的参数生成sql语句,或者根据传入的参数直接返回一个ResultSet对象。
/** * */ package com.woxiaoe.ework.util; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import javax.sql.DataSource; import org.apache.log4j.Logger; import org.gdb.common.DataSourceFactory; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.CallableStatementCallback; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DataSourceUtils; /** * 分页工具类 * @author 小e * * 2010-1-1 下午07:46:04 */ public class PaginationUtil { private Map<ResultSet,Connection> currentConn = new HashMap<ResultSet, Connection>(); public String getPaginationSql(int start,int limit,String tableName,String fields,String filter,String orderBy){ String sql = "SELECT TOP " + limit +" * FROM " + "( " + "SELECT ROW_NUMBER() OVER (ORDER BY " + orderBy + ") AS RowNumber," + fields +" FROM " + tableName + ((filter != null)?" where " + filter:"") + ") A " + " WHERE RowNumber > " + start ; return sql; } public ResultSet query(int start,int limit,String tableName,String fields,String filter,String orderBy){ Connection conn = DataSourceUtils.getConnection(DataSourceFactory.getDataSource()); PreparedStatement pstmt; ResultSet rs = null; try { pstmt = conn.prepareStatement(getPaginationSql(start,limit,tableName,fields,filter,orderBy)); rs = pstmt.executeQuery(); currentConn.put(rs, conn); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rs; } public void releaseConn(ResultSet rs){ Connection conn = currentConn.get(rs); currentConn.remove(rs); DataSourceUtils.releaseConnection(conn, DataSourceFactory.getDataSource()); } }
评论
12 楼
zjhlht
2010-04-14
看着楼主的功能还需要改进,在改进改进吧!
如果愿意的话就把源码发出来吧!在我自己的项目里用用,感觉能提升很多!
如果愿意的话就把源码发出来吧!在我自己的项目里用用,感觉能提升很多!
11 楼
xiangkun
2010-04-14
这也叫分页工具类!!!!!!
10 楼
finallygo
2010-04-14
这样的话,sql语句还是和分页语句耦合了,怎么才能完全去除这种关系呢?
9 楼
XTU_xiaoxin
2010-04-14
whaosoft 写道
想知道还有人嫩么用吗?
说的不错,但楼主应该只是展示个功能方法给大家讨论下,不必深究
8 楼
woxiaoe
2010-04-14
webeasymail 写道
之前的项目中项目经理不让用hibernate,所以要开发中就只能那样处理了。
7 楼
webeasymail
2010-04-14
<p> </p>
<p> </p>
<p>LZ精神可嘉~ 呵呵 ,建议楼主看看HIBERNATE对列表和分页的处理 </p>
<p> </p>
<p>这个是很久前写的了,也许符合楼主的需求!</p>
<p> </p>
<p><a href="http://webeasymail.iteye.com/blog/247881">http://webeasymail.iteye.com/blog/247881</a></p>
<p> </p>
<p>LZ精神可嘉~ 呵呵 ,建议楼主看看HIBERNATE对列表和分页的处理 </p>
<p> </p>
<p>这个是很久前写的了,也许符合楼主的需求!</p>
<p> </p>
<p><a href="http://webeasymail.iteye.com/blog/247881">http://webeasymail.iteye.com/blog/247881</a></p>
6 楼
woxiaoe
2010-04-14
justlive 写道
楼主不介意的话,我提点不同的意见。
1,职责不单一,PaginationUtil 既分页,又有管理连接的功能。
2,关键方法参数太多,不易于使用。
本人不太懂java,胡乱说的。实在罪过。
1,职责不单一,PaginationUtil 既分页,又有管理连接的功能。
2,关键方法参数太多,不易于使用。
本人不太懂java,胡乱说的。实在罪过。
之前这个方法是调用存储过程分页,需要传入那些参数,同时需要管理Connection,后来将分页过层改为通过sql语句分页,当不希望之前的代码有太大变化,所以保留了之前的参数样式。query方法是为了和之前的兼容,同样是返回ResultSet对象,这样其他的地方就无需修改了。后面的操作都是基于getPaginationSql得到sql参数自己分页,几乎没用到query。
之前的项目中用SqlServer做数据库,分页搞了好久,最后用这种模式,大家用SqlServer开发的时候分页一般是用哪种方式?
5 楼
mp_juan
2010-04-14
觉得楼主开发的可能是基于SqlServer2005的工具吧,SqlServer2000分页工具好像比较复杂的,用StringBuilder最好,一般不用String的+操作
4 楼
whaosoft
2010-04-14
想知道还有人嫩么用吗?
3 楼
justlive
2010-04-13
楼主不介意的话,我提点不同的意见。
1,职责不单一,PaginationUtil 既分页,又有管理连接的功能。
2,关键方法参数太多,不易于使用。
本人不太懂java,胡乱说的。实在罪过。
1,职责不单一,PaginationUtil 既分页,又有管理连接的功能。
2,关键方法参数太多,不易于使用。
本人不太懂java,胡乱说的。实在罪过。
2 楼
sokoo108
2010-04-13
lyw985 写道
LZ有这样的想法,说明你也上道了,再花点时间写个SqlUtil吧
基本上直接和数据库交互的程序员都会写个SqlUtil或想写个(hibernate除外)
加油
另外,最好别用String,用Stringbuilder
基本上直接和数据库交互的程序员都会写个SqlUtil或想写个(hibernate除外)
加油
另外,最好别用String,用Stringbuilder
的确,用StringBuilder或这个StringBuffer比较合适;
把这个public String getPaginationSql( 方法sql改下也可以应用到Oracle中。
1 楼
lyw985
2010-04-13
LZ有这样的想法,说明你也上道了,再花点时间写个SqlUtil吧
基本上直接和数据库交互的程序员都会写个SqlUtil或想写个(hibernate除外)
加油
另外,最好别用String,用Stringbuilder
基本上直接和数据库交互的程序员都会写个SqlUtil或想写个(hibernate除外)
加油
另外,最好别用String,用Stringbuilder
发表评论
-
Consider the following code: What will be printed?
2010-09-24 20:30 987Consider the following code: Wh ... -
Java 基础复习笔记一
2010-06-04 02:03 1153这两天复习java的基础知识,把一些自己认为比较有用的点记录下 ... -
Java 转义字符
2010-06-03 21:21 1022\n 回车(\u000a) \t 水平制表符(\u0009) ... -
生产消费者的模拟
2010-05-27 23:16 1723采用Java 多线程技术,设计实现一个符合生产者和消费者问题的 ... -
Java 控制台下显示文件结构
2010-05-27 00:10 3284题目: 编写一个Java ... -
Java得到类目录
2010-05-26 23:22 1198String path = MainTest.class.ge ... -
Java文件压缩
2010-05-23 21:54 1243package com.woxiaoe.study.io ... -
UDP传输图片的尝试
2010-05-22 18:05 9863UDP是不可靠的,发送的数据不一定会到达,且顺序不一定 ... -
【转载】Java String.Format() 方法及参数说明
2010-05-15 22:18 1347JDK1.5中,String类新增了一个很有用的静态方法S ... -
【转载】String.format函数使用方法介绍
2010-05-15 22:17 1221http://edu.codepub.com/2009/111 ... -
Java线程学习笔记(十一) DelayQueue的应用
2010-05-01 00:34 15736DelayQueue 是一个无界的BlockingQueue ... -
Java线程学习笔记(十)CountDownLatch 和CyclicBarrier
2010-04-30 21:04 2883CountDownLatch : 一个同步辅助类,在完成一组 ... -
Java线程学习笔记(九)生产者消费者问题
2010-04-29 22:27 1753用多线程来模拟生产者消费者问题。用到BlockingQueue ... -
Java线程学习笔记(八)线程之间的协作
2010-04-26 23:13 1866wait()与notifyAll() 调用sleep ... -
Java线程学习笔记(七)java中递增不是原子性
2010-04-24 23:00 2941以下为测试代码,通过一个自增函数得到最新的值,玩Set你存,看 ... -
Java线程学习笔记(六)在其他对象上同步
2010-04-24 22:47 1381package com.woxiaoe.study.threa ... -
Java线程学习笔记(五)资源共享问题
2010-04-24 21:04 1297IncreaseClient 中持有一个base,每次调用起i ... -
Java线程学习笔记(四)线程join
2010-04-24 20:06 1317《Java编程思想》的一个例子,如果某个线程在另一个线程t上调 ... -
基于java的图(四) 强连通组件
2010-04-22 21:06 1565有向图中, u可达v不一定意味着v可达u. 相互可达则属于同一 ... -
基于java的图(三) 图的拓扑排序
2010-04-21 16:14 1904相关: 基于java的图的实现 基于java ...
相关推荐
例如,MyBatis的`selectList`方法可以接受一个`RowBounds`对象,实现分页功能。 总结,Java中的分页查询涉及数据库操作、SQL构造和Java代码实现。理解分页原理和数据库分页语法,掌握JDBC基本用法,再根据实际需求...
在实际开发中,为了代码的复用性和易维护性,通常会创建一个通用的分页工具类或Service,使得分页逻辑可以独立于具体的业务。 **总结** 这个"SSH框架+SQLServer实现分页的小项目"提供了一个基础的分页实现示例,...
在后端,我们需要处理分页请求,生成对应的SQL Server分页查询语句,并返回结果。这里假设使用Java的Servlet或Spring MVC来处理请求。 1. SQL Server分页语句: SQL Server提供了多种方式实现分页,比如`ROW_NUMBER...
接下来,创建一个Servlet,例如“PaginationServlet”,它负责接收前端的请求参数,如当前页码和每页显示的记录数,然后调用“DatabaseUtil”类进行分页查询。在Servlet中,我们还需要计算总页数,并将查询结果及...
为了提高代码的可复用性和可维护性,分页工具类可能会设计成一个静态工具类,提供如`getPageBySQL(String sql, int currentPage, int pageSize)`这样的静态方法,接收基础的SQL语句和分页参数,返回一个`Page`对象。...
这里的"java分页工具类"就是为了解决这一问题而设计的,它允许开发者通过指定起始页号和每页显示的条数来实现高效且灵活的分页功能。 分页的核心思想是将数据库中的数据分割成多个部分,每次只加载一部分(即一页)...
【SpringMVC+Mybatis与SqlServer整合实现分页条件查询】\n\n在SpringMVC和Mybatis框架中,结合SqlServer数据库进行数据查询时,往往需要处理大量的数据,此时分页查询显得尤为重要。本篇文章将详细讲解如何在Sql ...
本项目以"Struts+Hibernate+SQL Server 2005"的技术栈实现了一个简单的分页小项目,下面我们将详细探讨这个项目中的关键技术点。 **1. Struts框架** Struts是Apache组织下的一个开源MVC框架,主要用于构建Java Web...
Java连接SQL Server 2008工具包是一个用于在Java应用程序中与Microsoft SQL Server 2008 R2数据库交互的必备组件。这个工具包主要包含数据库驱动程序,使得Java开发者能够利用Java Database Connectivity (JDBC) API...
除此之外,她还是SQL Server Magazine的优秀编辑和专栏作家,她还写作了大量的SQL Server类书籍,包括著名的Inside Microsoft SQL Server2000。 目录 前言 致谢 引言 第1章 SQL Server 2005 的安装与升级 1.1 ...
在IT行业中,数据抽取、转换和加载(ETL)是数据仓库和大数据...这个工具的源代码压缩包"复件 zExtractor"可能是实现这些功能的具体代码实现,对于想要深入了解或定制这类工具的IT从业者来说,是一个宝贵的参考资料。
`sqlserver.jar` 是一个与 Microsoft SQL Server 数据库交互的 Java 驱动程序包,主要用于 JDBC(Java Database Connectivity)应用程序。JDBC 是 Java 平台中的一个标准接口,允许 Java 程序连接到各种数据库,包括...
在.NET中,通常会创建一个包含当前页码、每页大小以及查询条件的模型类,然后在服务层或数据访问层执行对应的SQL查询,返回分页结果。 总结一下,本文介绍了SQL的分页查询原理和常见实现方式,包括MySQL的LIMIT和...
总的来说,"mybatis-sqlserver2014"工具包提供了一种便捷的方式,帮助开发者快速地生成与SQL Server 2014数据库交互的MyBatis代码。通过合理的配置和使用,可以显著提高开发效率,减少手动编写SQL和Java代码的工作量...
本版本是04年当时开发项目时,为了节省工作量,开发的一个辅助工具,能够完全生成数据操作层代码 数据库操作中,包括了添加、删除、修改、获取单条记录、批量记录、分页获取六中基本方法 使用中有一个唯一的条件...
在给定的资源中,包含的"PaginationSupport.java"和"PageDao.java"两个工具类,正是为了实现这种功能而设计的。 PaginationSupport.java是分页支持类,通常会包含以下关键知识点: 1. **参数设置**:此类可能包含...
标题中的"sqljdbc42_sqlserver_jdbc_Driver_zip_驱动_"表明了这是一个与SQL Server数据库连接相关的Java JDBC驱动程序的压缩包,具体版本为42。描述中的"sqlserver jdbc驱动 42版本"进一步确认了这是针对SQL Server...
【标题】"基于三层Vs.net+SQLServer2005实现单张表的CRUD(GridView带分页)",这个项目展示了如何使用Microsoft的Visual Studio .NET(Vs.net)开发工具,结合SQL Server 2005数据库管理系统,来创建一个简单的数据...
1. 创建Java服务类:在服务端,你需要创建一个Java类,该类包含对SQL Server数据库的操作方法,如查询、插入、更新和删除等。这些方法需要使用JDBC(Java Database Connectivity)驱动来与SQL Server建立连接,并...