ibatis 分页

来源:互联网 发布:python软件 编辑:程序博客网 时间:2024/05/17 01:47

在项目开发中,ibatis使用的分页机制一般是displaytag标签,这个标签功能很强大,但是它的CSS样式是固定的,在使用的时候更改CSS比较繁琐,为了使用自己的CSS样式,可以自己写分页方式。

下面是我自己做的分页的代码(包括jsp 页面和java代码)

JSP页面代码:

int ToPage=0;
if (request.getParameter("ToPage") == null
  || request.getParameter("ToPage").equals(""))
{
          ToPage = 1;
}

else
{
     ToPage = Integer.parseInt(request.getParameter("ToPage"));
 }
int countPage = 0;//页数
int rowcount = 12;//每页显示的数据量
int k = 0;
  ImageDao imagedao = new ImageDaoImpl();//
    
    List<Image>  image1 = imagedao.quertImageCount();//计算数据的总量
    
    
    countPage = ((image1.size() % rowcount) == 0
      ? (image1.size() / rowcount)
    : (image1.size() / rowcount) + 1);//根据每页显示的数据条数计算总的页数。
    
    List<Image>  image = imagedao.quertImage(ToPage,rowcount);
    if(image!=null && image.size()>0)
     {
     
     for(Image obj:image)
     {
      k++;//

      obj.getC_path()  //这里是循环得到数据了。

 

}

 

/*****************************************/

 

下面的代码是接口类(ImageDao)和接口的实现类(ImageDaoImpl)

public interface ImageDao {
 /*
  * 读取图片并分页
  */
 List<Image> quertImage(int ToPage,int rowcount);
 /*
  * 查询数据的总量
  */
 List<Image> quertImageCount();
 /*
  * 根据ID查询图片
  */
 Image queryImageById(String id);
}

 

/*****************************************/

 

public class ImageDaoImpl extends BaseAction implements ImageDao {

 @Override
 public List<Image> quertImage(int ToPage,int rowcount) {
  List<Image> image = null;
  try{
   if(ToPage==1){


    ToPage = 0;//(当页数为1时,读取的是第0条到第11条的数据)


   }else{
    
    ToPage = (ToPage-1) * rowcount;//当页数不为1时,读取数据的偏移量。(当页数为2时,读取的是第12条到到第23条的数据,以此类推)


   }


   image = sqlMapClient.queryForList("selectimage", ToPage,rowcount);//queryForList 读取数据从0开始是第一条,

 

  }catch(SQLException e){


   e.printStackTrace();


  }

  return image;
 }


}

 

 

 

 

原创粉丝点击