十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
真分页:每次从数据库里按照排序方法,取一段数据,比如每页20条,第一页就是1-20 ,第二页就是21-40。它是每次都从数据库里查询。都是最新的。假分页:一次从数据库里得到很多页的数据,然后缓存起来。比如每页20条,一次取了100条,缓存起来。第一页依然是1-20 ,第二页就是21-40。到第6页的时候,再从数据库里取101-200条,在缓存起来。只不过,取数据的时候不是从数据库里取了,而是在缓存里取。但是这个数据有可能不是最新的,因为不是直接从数据库里查询的。这种多用在更新不多的数据上。
10年积累的网站建设、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有合江免费网站建设让你可以放心的选择与我们合作。
通过rs.next()进行分页,首先用rs.absolute(0)定位到某条记录。然后循环取数例如:1-10 可以for(int i=0;i10;i++){rs.next()}
import java.sql.*;
public class javaBeanBO {
private ResultSet rs=null;
private Connection ct=null;
private PreparedStatement ps=null;
/**
*
* @param pageSize
* @return
*/
public int getPageCount(int pageSize){ //int pageSize每页显示多少条信息
int pageCount=0;//共有多少页
int rowCount=0;//共有多少条信息
try {
//连接数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=movie","sa","111111");//movie是数据库,sa是账号,111111是密码
//查询数据库
ps=ct.prepareStatement("select count(*) from message");//message是查询的表
rs=ps.executeQuery();
while(rs.next()){
//得到共有多少条信息数
rowCount=rs.getInt(1);
}
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.close();
}
//返回共有多少页
return pageCount;
}
public void close(){
try {
if(rs!=null){
rs.close();
rs=null;
}
if(ps!=null){
ps.close();
ps=null;
}
if(ct!=null){
ct.close();
ct=null;
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}