日期:2014-05-17  浏览次数:20712 次

JSP jquery简单无刷新分页(oracle数据库)
最近在用JSP写一个小项目的时候,需要用到分页。但是以前写的PHP版本的跟这个稍微有一点不同,就研究了下,自己写了个分页。现在跟大家分享一下,欢迎指正。我就直接贴代码了。
一.页面js中导入jquery.js和page.js
然后在页面js中调用函数cut_page(page,count,div)
page-------需要分页的页面
count------每页记录数量
div--------放记录的div,别忘加#
eg.cut_page("main.jsp",10,"#content")

二.当前页面导入包conn.DBbean和conn.OptionSP然后在内容中添加如下内容
//OptionSP构造函数中的student_info是表名和条件查询语句(eg. "book where id>3")count需要和上面js的count一样,也是每页记录数
OptionSP sp=new OptionSP("student_info",count);
String start_op=request.getParameter("start");
if(start_op==null)
{
sp.set_start(1);
}
else
{
int start_cp=Integer.parseInt(start_op);
sp.set_start(start_cp);
}

三.将你页面输出数据的sql语句放在如下语句中
"select * from (select t.*,rownum as h from (SQL语句) t ) where 
h>="+sp.get_start()+" and h<"+sp.get_end())
这个是ORACLE和MYSQL不一样的控制输出记录条数的语句,比mysql麻烦。我还是更喜欢简单mysql。


四.下面的代码是显示控制的,把它放在页面div(这个div就是cut_page()里面的div)内的任何地方
//
<input type='text' value=<%=sp.get_start()%>  id='help_fenye' last_start='<%=sp.get_last_start()%>'  style='display:none'>
<span id='first_page' style='cursor:pointer;'>首页</span>
<span id='prev_page' style='cursor:pointer;'>上一页</span>
<span id='next_page' style='cursor:pointer;'>下一页</span> 
<span id='last_page' style='cursor:pointer;'>末页</span>
<span>当前第<%=sp.get_now_page() %>/<%=sp.get_max_page()%> 页</span>(共<%=sp.get_count_num()%>条记录)


附带:
conn.DBbean内容(与orcle连接的类,用户名密码自己改下)如下(保存在DBbean.java文件中)
//--------------------------分割线---------------------------------
package conn;
import java.sql.*;
public class DBbean {
private String driver_url="oracle.jdbc.driver.OracleDriver";
private String conn_url="jdbc:oracle:thin:@localhost:1521:orcl";
private String db_user="cp";
private String pass="123";
private Connection conn=null;
private Statement stmt=null;
public DBbean(){
//建立连接
try{
Class.forName(driver_url);
conn=DriverManager.getConnection(conn_url,db_user,pass);
stmt=conn.createStatement();
}
catch (Exception e)
{
System.out.println("无法建立连接");
}
}
//查询方法
public ResultSet executeQuery(String s)
{
ResultSet rs=null;
try{
rs=stmt.executeQuery(s);
}
catch(Exception e){
System.out.println("执行查询出现错误");
}
return rs;
}
//更新方法
public int executeUpdate(String s){
int result=0;
try{
result=stmt.executeUpdate(s);

}
catch(Exception e)
{
System.out.println("更新出现未知错误");
}
return result;
}
//返回Connection,用于orcle事务
public Connection reConnection()
{
return conn;
}
//关闭statement对象及连接
public void close(){
try{
conn.close();
stmt.close();
}
catch(Exception e)
{ }
}
}
//-----------------分割线-------------------------------------

conn.OptionSP内容如下(保存在OptionSP.java文件中)

//-----------------分割线-------------------------------------
package conn;
import java.sql.ResultSet;
public class OptionSP{
private int count_num=0;//记录总数