用法:不用写连接数据库等多余代码(在ConnLink.java文件中修改一下相关属性就可以了,如果不想写分页,在ConnLink.java文件中DBlink()方法可以返回一个Statement对象,然后就可以利用这个返回值去写你想要的代码了),只要建立一个Page对象,调用SelectRS()方法,将SQL语句当前页码和每页要显示的条数正确的写入。SelectRS()会自动返回一个结果集rs,然后用rs遍历输出结果。用getFrist()、getBack()、getLast()、getNext()等方法进行取得上一页的页码,下一面的页码就可以了。
看了之后是不是很心动呢~~~
HOHO~~其实我的代码有很多不足,例如:是不是可以做成通用的分页?也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段代码更精一些。HOHO~~~~改完之的一定要发到网上供大家参考和使用。
刚刚才发现Page.java文件是空的,在这里我就加上吧!实在是不好意思了
package com.SpreadPage;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.DateBase.*;
public class Page extends ConnLink{
private Statement stmt=null;
private ResultSet rs=null;
private int row=0;
private int num=0;
private int page=0;
private int list=0;
//搜索去向 搜索条件 当前第几页 每页条数
public ResultSet SelectRS(String select,int page_num,int page)
{
this.num=page_num;
this.page=page;
String sql=select+" limit "+(page_num*page)+","+(page_num*page+page);
//System.out.println(sql);
try {
stmt=DBlink();
rs=stmt.executeQuery(select);
rs.first();
rs.last();
this.row=rs.getRow();
System.out.println(sql);
if(rs!=null)
{
rs.close();
}
if(stmt==null)
{
System.out.println("Stmt无连接");
return null;
}
rs=stmt.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
//获得总记录数
public int getRow()
{
return row;
}
//第一页
public int getFrist()
{
return 0;
}
//最后一页
public int getBack()
{
if(getRow()%page==0)
{
return getRow()/page;
}
return (getRow()/page)+1;
}
//上一页
public int getLast()
{
if(num=back)
{
return num;
}
return (num+1);
}
//当前页的条数
public int getNow()
{
try {
rs.first();
rs.last();
list=rs.getRow();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
//当前第几页
public int getPage()
{
int sum=(num*page-page)+1;
if(getRow()
2022-03-16 21:50:58
482KB
分页
1