servlet jsp实现分页功能代码解析(一)

2025-04-22 17:00:34

1、1模拟实现过程:目录结构

servlet jsp实现分页功能代码解析(一)
servlet jsp实现分页功能代码解析(一)

2、2 model层,一个数据库对应的model(Blog),还有一个pageBean(BlogPage)import java.s鳎溻趄酃ql.Date;public class Blog {private int id;private int category_id;private String title;private String content;private Date created_time;   //getter和setter方法@Overridepublic String toString() { return "Blog [id=" + id + ",category_id=" + category_id + ",title=" + title + ",content=" + content + ",created_time=" + created_time + "]"; } }public class BlogPage {private List<Blog> pagerecord;//每页记录private int pageno;//当前页private int pagenostart;//每页开始索引private int pagesize=5;//每页多少数据 private int totalrecord;//总记录数private int totalpage;//总页数public BlogPage(int pageno,int totalrecord){ //pageno totalrecord都可以当做已有信息 this.totalrecord=totalrecord;//计算总页数 totalpage=(totalrecord%pagesize==0)?totalrecord/pagesize:totalrecord/pagesize+1; //pageno的边界处理if(pageno<=1) this.pageno=1;else if(pageno>=totalpage) this.pageno=totalpage; else this.pageno=pageno; //计算每页开始索引,即每页第一个数据的索引,用于分页查询 pagenostart=(this.pageno-1)*pagesize;}public int getPagenostart() {return pagenostart;}public void setPagenostart(int pagenostart) {this.pagenostart = pagenostart;}public List<Blog> getPagerecord() {return pagerecord;}public void setPagerecord(List<Blog> pagerecord) { this.pagerecord = pagerecord;}public int getPageno() {return pageno; }public void setPageno(int pageno) { this.pageno = pageno; }public int getPagesize() {return pagesize;} public void setPagesize(int pagesize) {this.pagesize = pagesize;}public int getTotalrecord() { return totalrecord; }public void setTotalrecord(int totalrecord) { this.totalrecord = totalrecord; }public int getTotalpage() { return totalpage; }public void setTotalpage(int totalpage) { this.totalpage = totalpage; } }

3、dao层JDBCUtil封装了jdbc的连接和释放操作public class JDBCUtil {private static String url = "jdbc:mysql://localhost:3306/blogs_stu";private static String username = "root";private static String password = "";static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (Exception e) { e.printStackTrace(); } }public static Connection getConnection(){ Connection conn; try { conn= DriverManager.getConnection(url, username, password); return conn; } catch (SQLException e) { e.printStackTrace(); } return null; }public static void release(ResultSet rs,PreparedStatement ps,Connection conn){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(ps!=null){ try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }

4、public class BlogDao { //每页的记录,传入每页开始索引和每页大小用于分页,即limit的两个参数(mysql分页吹涡皋陕用limit)public List<Blog> getPageRecord(int pagenostart, int pagesize) { Connection conn = JDBCUtil.getConnection(); PreparedStatement ps = null; ResultSet rs = null; String sql = "select * from blog limit ?,?"; List<Blog> list = new ArrayList<Blog>(); try { ps = conn.prepareStatement(sql); ps.setInt(1, pagenostart); ps.setInt(2, pagesize); rs = ps.executeQuery(); while (rs.next()) { Blog blog = new Blog(); blog.setId(rs.getInt("id")); blog.setCategory_id(rs.getInt("category_id")); blog.setTitle(rs.getString("title")); blog.setContent(rs.getString("content")); blog.setCreated_time(rs.getDate("created_time")); list.add(blog); } return list; } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtil.release(rs, ps, conn); } return null; } //总记录数 public int getTotal() { Connection conn = JDBCUtil.getConnection(); PreparedStatement ps = null; ResultSet rs = null; try { ps = conn.prepareStatement("select count(*) from blog"); rs = ps.executeQuery(); if (rs.next()) { return rs.getInt(1); } } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtil.release(rs, ps, conn); } return 0; } }

5、service层public class BlogService { BlogDao blogDao = new BlogDao(); //返回pagebean,所有分页需要的信息都去pagebean里查找public BlogPage findPageRecord(int pageno) { int totalrecord = blogDao.getTotal(); BlogPage blogpage = new BlogPage(pageno, totalrecord); List<Blog> list = blogDao.getPageRecord(blogpage.getPagenostart(),blogpage.getPagesize()); blogpage.setPagerecord(list); return blogpage; } }

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢