mysql, oracle 直接支持分页查询,sql server 2000不行。可以看看hibernate 的dialet中的源代码。
解决方案 »
- sturts2 继承 sessionAware 后如何获得sessionId
- 新手求助,onlick调用javascript函数没反应,求帮我看看怎么回事
- 求助各位高手为我解决Myeclipse与Tomcat的问题!!!
- jsp中导航栏点击改变背景颜色 一直没搞懂怎么实现
- jsp web怎么不能运行!!!!帮忙看看
- checkbox 值提交问题
- 高手帮帮忙看下为什么老是插入的数据都是乱码
- 在onblur中的脚本,当把光标从第一个日期挪开时,既是日期输对,还是会有警告信息。但是从第二个挪开时,就不会有警告,除非日期输入有问题。这是怎么回事。
- 为什么jsp页面不跳转,连地址栏都没有变化,已确定只是jsp有问题
- jsp怎么通过相对路径读写、创建文件
- 关于数据库的问题,达人们帮帮偶~
- 真是莫名其妙,谁能帮我解释一下是什么问题?
oracle, db2, postgres等都支持的
<%@ page contentType="text/html;charset=gb2312" %>
<%request.setCharacterEncoding("gb2312");%>
<%@ page import="java.sql.*"%>
<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> <%
//变量声明
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:@//192.168.0.203:1521/ora10g.net"; //连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon,"test","test"); //创建一个可以滚动的只读的SQL语句对象
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //准备SQL语句
strSQL = "select * from km_movie_list_tbl"; //执行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.getInt(1)%></td>
<td><%=com.kamun.movie.UtilsBean.GBToUn(sqlRst.getString(2))%></td>
</tr>
<%
sqlRst.next();
i++;
}
}
%> </table> 第<%=intPage%>页 共<%=intPageCount%>页 <%if(intPage<intPageCount){%><a href="file:///E|/Documents%20and%20Settings/administrator/桌面/jdbc20-oracle.jsp?page=<%=intPage+1%>">下一页</a><%}%> <%if(intPage>1){%><a href="file:///E|/Documents%20and%20Settings/administrator/桌面/jdbc20-oracle.jsp?page=<%=intPage-1%>">上一页</a><%}%> </body>
</html> <%
//关闭结果集
sqlRst.close(); //关闭SQL语句对象
sqlStmt.close(); //关闭数据库
sqlCon.close();
%>
http://blog.csdn.net/lcllcl987
很简单,不过也没实现你说的功能
取出来放到VECTOR还是ARRAYLIST里面?
query.setFirstResult();
query.setMaxResults();先从request参数里计算出记录段,
然后我将结果封装到自定义的 PageResult Bean中,
里面包含了分页信息,很好用。
不过多了一次的查询数据总量的语句,
但查到的结果是当前页的,
不象上面程序那样
//准备SQL语句
strSQL = "select * from km_movie_list_tbl"; 这样耗资源太厉害了,不可取。
请问rs.last()十分浪费内存吗?
1.最好调用存储过程,因为经过预编译,比执行查询语句要快
2.建立索引,提高检索速度
3.优化数据存储形式对海量数据oracl里有好多优化手段的