Struts中实现分页
来源:互联网 发布:文字排版软件下载 编辑:程序博客网 时间:2024/04/28 15:33
首先是效果
1.建立页数类
public class PageBean
{
private int curPage = 1; //当前页
private int totalPages; //总页数
private int rowsPerPage =5; //每页显示行数
private inttotalRows; //总行数
private String order ="all"; //排序实际没用,当有检测排序的时候有用
public int getCurPage() {
return curPage;
}
public void setCurPage(int curPage) {
this.curPage = curPage;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages =totalPages;
}
public int getRowsPerPage() {
return rowsPerPage;
}
public void setRowsPerPage(int rowsPerPage){
this.rowsPerPage =rowsPerPage;
}
public int getTotalRows() {
return totalRows;
}
public void setTotalRows(int totalRows) {
this.totalRows =totalRows;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
}
2.BIZ
//根据条件查出宠物信息
public ArrayList findPetInfoByParamer( PetInfopetInfo,PageBean page )
{
ArrayList list = newArrayList();
String sql1 = "";
String sql2 = "";
String sql3 = "";
String sql4 = "";
String sql5 = "";
String sql6 = "";
String sql7 = "";
String name =petInfo.getPet_name();
if(name!=null&& !name.equals(""))
{
sql1 = "andpet_name like '%"+name+"%'";
sql5 =sql5+sql1;
}
int type =petInfo.getPet_type();
if( type!=-1 ){
sql2 = "andpet_type=" + type;
sql5 =sql5+sql2;
}
String owner =petInfo.getPet_owner_name();
if( owner!=null&& !owner.equals("") ){
sql3 = "andpet_owner_name like '%" + owner + "%'";
sql5 =sql5+sql3;
}
//排序
String order =page.getOrder();
if(!order.equals("all") )
{
sql7 =" orderby " + order + "desc";
}
else
{
sql7 =" orderby (pet_strength+pet_cute+pet_love) desc";
}
//not in 后的查询
sql4 = "select top " +(page.getCurPage()-1)*page.getRowsPerPage() + " pet_id from PetInfowhere 1=1 ";
sql4 = sql4+sql5+sql7;
//对查询结果进行分页
sql6 = "select top " +page.getRowsPerPage() + " * from PetInfo where pet_id notin("
+ sql4 + ") "+ sql5;
if(!order.equals("all"))
{
sql6 = sql6 +" order by " + order + "desc";
}
else
{
sql6 = sql6 +" order by (pet_strength+pet_cute+pet_love) desc";
}
System.out.println("sql=" +sql6);
try
{
conn =super.getConnection();
pst =conn.prepareStatement(sql6);
rs =pst.executeQuery();
while(rs.next())
{
PetInfopet = new PetInfo();
pet.setPet_id(rs.getInt(1));
pet.setPet_name(rs.getString(2));
pet.setPet_sex(rs.getString(3));
pet.setPet_strength(rs.getInt(4));
pet.setPet_cute(rs.getInt(5));
pet.setPet_love(rs.getInt(6));
pet.setPet_intro(rs.getString(7));
pet.setPet_owner_name(rs.getString(8));
pet.setPet_owner_email(rs.getString(9));
pet.setPet_password(rs.getString(10));
pet.setPet_pic(rs.getString(11));
pet.setPet_type(rs.getInt(12));
list.add(pet);
}
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
super.closeAll(conn,pst, rs);
}
return list;
}
//根据条件查询总行数
public int findTotalRows( PetInfopetInfo,PageBean page ){
int totalRows = 0;
String sql1 = "";
String sql2 = "";
String sql3 = "";
String sql4 = "";
String sql5 = "";
String name =petInfo.getPet_name();
if( name!=null&& !name.equals("") ){
sql1 = "andpet_name like '%" + name + "%'";
sql5 =sql5+sql1;
}
int type =petInfo.getPet_type();
if( type!=-1 ){
sql2 = "andpet_type=" + type;
sql5 =sql5+sql2;
}
String owner =petInfo.getPet_owner_name();
if( owner!=null&& !owner.equals("") ){
sql3 = "andpet_owner_name like '%" + owner + "%'";
sql5 =sql5+sql3;
}
sql4 = "select count(*) pet_idfrom PetInfo where 1=1 ";
sql4 = sql4+sql5;
//执行SQL语句
try
{
conn =super.getConnection();
pst =conn.prepareStatement(sql4);
rs =pst.executeQuery();
if(rs.next())
{
totalRows= rs.getInt(1);
}
}
catch (SQLException e)
{
e.printStackTrace();
}