select top 1000 * from abc where 1=1 and id not in (select top 10000 id from abc where 1=1 order by id desc) order by id desc
SELECT * FROM abc where ID IN (SELECT TOP 11000 id FROM abc where 1=1 order by id desc) AND ID NOT IN (SELECT TOP 10000 id FROM abc where 1=1 order by id desc)
SELECT * FROM abc where ID IN (SELECT TOP 11000 id FROM abc where 1=1 order by id desc) AND ID NOT IN (SELECT TOP 10000 id FROM abc where 1=1 order by id desc)
解决方案 »
- mysql oracle数据迁移
- 在myeclipse中启动tomcat6.0是出错
- 在struts,我一个插入JSP页面,怎么到一个action时,怎么一个action.do怎么一片空白,这一般是什么回事啊,在线等
- 寒武纪社区 诚招斑竹
- 怪问题
- java.lang.NullPointerException 错误啊?(已看过以前的帖子)
- jsp/servlet/javabean构架,我想在project启动时从数据库或文件中读取一些数据,存为全局变量诚征规范化解决方案
- 求救!数据显示问题。谢谢!!!
- jquery脚本冲突如何解决?
- Servlet监听器之HttpSessionListener
- 中文问题,怎么从一个byte[]里面得到中文
- 在jbuilder下:在jsp下调用servlet出错,不知道什么原因:
where r >=minvalue and r<=maxvalue
日期:2001-11-27 9:26:31
出处:-
作者:何志强[[email protected]]
<%--
功能:JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle
--%> <%@ page contentType=\"text/html;charset=8859_1\" %&g
t; <%
//变量声明
java.sql.Connection sqlCon; //数据库连接对象
java.sql.Statement sqlStmt; //SQL语句对象
java.sql.ResultSet sqlRst; //结果集对象 java.lang.String strCon; //数据库连接字符串
java.lang.String strSQL; //SQL语句 int intPageSize; //一页显示的记录数
int intRowCount; //记录总数
int intPageCount; //总页数
int intPage; //待显示页码
java.lang.String strPage; int i; //设置一页显示的记录数
intPageSize = 2; //取得待显示页码
strPage = request.getParameter(\"page\");
if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else{//将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1;
} //装载JDBC驱动程序
java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); //设置数据库连接字符串
strCon = \"jdbc:oracle:thin:@linux:1521:ora4cweb\"; //连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon,\"hzq\",\"hzq\"); //创建一个可以滚动的只读的SQL语句对象
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //准备SQL语句
strSQL = \"select name,age from test\"; //执行SQL语句并获取结果集
sqlRst = sqlStmt.executeQuery(strSQL); //获取记录总数
sqlRst.last();
intRowCount = sqlRst.getRow(); //记算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize; //调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
%> <html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">
<title>JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle</title>
</head> <body> <table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<th>姓名</th>
<th>年龄</th>
</tr> <%
if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
sqlRst.absolute((intPage-1) * intPageSize + 1); //显示数据
i = 0;
while(i<intPageSize && !sqlRst.isAfterLast()){
%>
<tr>
<td><%=sqlRst.getString(1)%></td>
<td><%=sqlRst.getString(2)%></td>
</tr>
<%
sqlRst.next();
i++;
}
}
%> </table> 第<%=intPage%>页 共<%=intPageCount%>页 <%if(intPage<intPageCount){%><a href=\"jdbc20-oracle.jsp?page=<%=intPage+1%>\">下一页</a><%}%> <%if(intPage>1){%><a href=\"jdbc20-oracle.jsp?page=<%=intPage-1%>\">上一页</a><%}%> </body>
</html> <%
//关闭结果集
sqlRst.close(); //关闭SQL语句对象
sqlStmt.close(); //关闭数据库
sqlCon.close();
1是不是每次看下一页都要重新查询一次sqlRst?
2下面的语句时什么时候执行,是用户的什么动作使其执行还是自动执行?//关闭结果集
sqlRst.close(); //关闭SQL语句对象
sqlStmt.close(); //关闭数据库
sqlCon.close();
//以下代码用来滚动记录集到当前页的第一条纪录
int recNum,pageNum,PN,total;//recNum--总记录数,pageNum---当前页数,PN---每页显示记录数,total---总页数
PN=5;//每页显示记录数
if(request.getParameter("page")==null) pageNum=1;
else if(request.getParameter("page").equals("")) pageNum=1;
else pageNum=Integer.parseInt(request.getParameter("page"));
recNum=lyaq.getRecNum();
if(rs!=null){
//定位到当前页的第一条记录的前面一条,
for(int i=0;(i<(PN*(pageNum-1)))&&(i<recNum)&&(rs.next());i++)
System.out.println(i);
}
if(recNum%PN==0) total=recNum/PN;
else total=recNum/PN+1; //以下代码用来输出记录集内容到表格
int i=0;
while(rs.next()&&i<PN){
//....输出表格内容
i++;
} //以下代码放于表格的最后一行,用来翻页:
<td colspan=6> <div align="right"> <a onMouseMove="this.style.cursor='hand';" onClick="document.form1.action='lyaq_cxjg.jsp';form1.submit();">首页</a>
<%if(pageNum<=1){
%>
<a> 上一页</a>
<%
}
else{
%>
<a onMouseMove="this.style.cursor='hand';" onClick = "document.form1.action = 'lyaq_cxjg.jsp?page=<%=pageNum-1%>';form1.submit();">上一页</a>
<%
}
if(total<=pageNum){
%>
<a> 下一页</a>
<%
}
else{
%>
<a onMouseMove="this.style.cursor='hand';" onClick = "document.form1.action = 'lyaq_cxjg.jsp?page=<%=pageNum+1%>';form1.submit();">下一页</a>
<%
}
%>
<a onMouseMove="this.style.cursor='hand';" onClick = "document.form1.action ='lyaq_cxjg.jsp?page=<%=total%>';form1.submit();">尾页</a> </div></td>
recNum=lyaq.getRecNum();//这句话是用来获得总记录数,你应该把=号右边的代码替换掉,自己执行一个类似于“select count(*) from table_name ”的sql语句,然后把查出来的记录总数赋给recNum
还有就是<a onMouseMove="this.style.cursor='hand';" onClick = "document.form1.action = 'lyaq_cxjg.jsp?page=<%=pageNum+1%>';form1.submit();">下一页</a>这里面的lyan_cxjg.jsp你应该替换成自己的页面名字
第一次
先把search出来的数据的主关键字按页放到Hashtable中
再把这个Hashtable放到session中然后每一页可以从这个session中Hashtable取
其实sql分页很方便,而直接在jsp里面分页,得考虑很多的问题