您好,欢迎访问一九零五行业门户网

Mysql和Oracle数据库中的分页查询_MySQL

bitscn.com
mysql和oracle数据库中的分页查询
方法一:mysql数据库分页
//定义每一页显示的记录
int pagesize = 3;
string strpageno = request.getparameter(pageno);
        //记录当前页面
int pageno;
        //如果传入的当前页码为空,停留在第一页
if(strpageno == null || strpageno.equals())
{
pageno = 1;
}
else
{
 try
                //把传进来的字符串转化成数字
{
pageno = integer.parseint(strpageno.trim());
}
catch(numberformatexception e)
{
pageno = 1;
}
                    //如果页码小于或者等于0停留在第一页
if(pageno
{
pageno=1;
}
}
//连接数据库
class.forname(com.mysql.jdbc.driver);
connection conn = drivermanager.getconnection
(jdbc:mysql://localhost/bbs?user=root&password=mingming);
statement stcount = conn.createstatement();
resultset rscount = stcount.executequery
(select count(*) from article where pid=0);//查询共有多少个根节点
rscount.next();
int totalrecord = rscount.getint(1); //拿到所有的子节点,计算出总共有多少条记录
//   第一种方法        计算得到总的页数,如果能被整数,页数就是商,否则就是商+1
int totalpage = 
totalrecord%pagesize==0 ? totalrecord/pagesize : totalrecord/pagesize +1;
        //第二种方法    计算得到总的页数,在 总记录上+加一个pagesize然后减去1除页面的大小pagesize,取商
int totalrecords = rscount.getint(1);
totalpages = (totalrecords + page_size - 1)/page_size;
//如果当前页码大于总的页数,停在最后一页
if(pageno>totalpage)
{
pageno = totalpage;
}
//计算每一次分页时 的起始位置,注意起始是从0开始;
int startpos = (pageno-1)*pagesize;
statement st = conn.createstatement();
        //进行分页查询,startpos是每一次分页的起始位置;   pagesize是这一页要显示记录的大小
resultset rs = st.executequery
(select * from article where pid =0 order by pdate desc limit +startpos+,+pagesize);
%>
分页后在页面的不同的显示方式:
方式一:在一个table中正常的显示:
while(rs.next()){
%>
//只显示每一个记录的title
}
                //关闭流
rs.close();
st.close();
conn.close();
%>
首页 共页  第页 末页
上一页  
下一页
方式二:可以选择的显示:可以实现页面的跳转
for(int i = 1;i
%>
第页
}
%>
方式三:可以直接进行页面的查找:
//提交到当前页面
方法二:oracle数据库下的分页操作
分页查询
姓名
薪水
//连接数据库,加载驱动
class.forname(oracle.jdbc.driver.oracledriver);
connection ct = drivermanager.getconnection
(jdbc:oracle:thin:@127.0.0.1:1521:orcl,scott,tiger);
statement sm = ct.createstatement();
//总共有多少页
int pagecount = 0;
//总共有多少行记录
int rowcount = 0;
//每页有3行记录
int pagesize = 3;
//接收pagenow
string s_pagenow = (string)request.getparameter(pagenow);
//当前在第一页
int pagenow = 1;
if(s_pagenow != null)
{
//把s_pagenow转化为数值型
pagenow = integer.parseint(s_pagenow);
}
//查询表中共有多少条记录
resultset rs = sm.executequery(select count(*) from emp);
if(rs.next())
{
rowcount = rs.getint(1);
//如果整除就是商,否则就是商加上1  可以用三元表达式代替  rowcount%pagesize==0 ?  rowcount/pagesize : rowcount/pagesize +1
if(rowcount%pagesize == 0)
{
pagecount = rowcount/pagesize;
}
else
{
pagecount = rowcount/pagesize +1;
}
}
//执行分页查询
rs = sm.executequery
(select * from (select a1.*,rownum rn from(select * from emp) a1 where rownum=+((pagenow-1)*pagesize+1)+ );
while(rs.next())
{
out.println(
);out.println(
+rs.getstring(2)+ );out.println(
+rs.getstring(6)+ );out.println(
);}
//输出每一页要查找的连接
for(int i=1; i
{
out.print([+i+]);
}
%>
bitscn.com
其它类似信息

推荐信息