JSP实现分页

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="model.Members"%> <%@page import="dao.MembersDao"%> <% int currentPage = 1; if (request.getParameter("page")!=null){ currentPage = Integer.parseInt(request.getParameter("page")); } MembersDao dao = new MembersDao(); List<Members> list = dao.getAllByPage(currentPage, ""); int totalPage = dao.getAllPage(""); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Title</title> </head> <body> <table border="1"> <tr><td>id</td><td>username</td><td>password</td></tr> <% for (int i = 0; i < list.size(); i++) { Members m = list.get(i); %> <tr><td><%=m.getId()%></td><td><%=m.getUsername()%></td><td><%=m.getPassword()%></td></tr> <% } %> <tr><td colspan="3"> <% if (currentPage==1) { %> 上一页 <% }else {%> <a href="index.jsp?page=<%=currentPage-1%>">上一页</a> <% } %> | <% if (currentPage==totalPage) { %> 下一页 <% }else {%> <a href="index.jsp?page=<%=currentPage+1%>">下一页</a> <% } %> </td></tr> </table> </body> </html>
package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DbFactory { private Connection conn = null; private void getConnection() { try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); conn = DriverManager.getConnection( "jdbc:jtds:sqlserver://192.168.1.31:1433/test", "sa", ""); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public void execSqlWithoutResult(String sql, Object[] params) { try { if (conn == null) getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql); for (int i = 0; i < params.length; i++) { pstmt.setObject(i + 1, params[i]); } pstmt.execute(); } catch (SQLException e) { e.printStackTrace(); } } public ResultSet execSqlWithResult(String sql, Object[] params) { ResultSet rs = null; try { if (conn == null) getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql); for (int i = 0; i < params.length; i++) { pstmt.setObject(i + 1, params[i]); } rs = pstmt.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return rs; } public void close() { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
package dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import model.Members; public class MembersDao { private DbFactory df = new DbFactory(); public void insert(Members member) { String sql = "insert into members values(?,?)"; Object[] params = new Object[] { member.getUsername(), member.getPassword() }; df.execSqlWithoutResult(sql, params); } public void delete(int id) { String sql = "delete from members where id=?"; Object[] params = new Object[] { id }; df.execSqlWithoutResult(sql, params); } public void update(Members member) { String sql = "update members set password=? where id=?"; Object[] params = new Object[] { member.getPassword(), member.getId() }; df.execSqlWithoutResult(sql, params); } public Members getById(int id) { Members member = null; try { String sql = "Select * from members where id=?"; Object[] params = new Object[] { id }; ResultSet rs = df.execSqlWithResult(sql, params); while (rs.next()) { member = new Members(); member.setId(rs.getInt("id")); member.setUsername(rs.getString("username")); member.setPassword(rs.getString("password")); } } catch (SQLException e) { e.printStackTrace(); } return member; } public List<Members> getAll() { List<Members> list = new ArrayList<Members>(); try { String sql = "Select * from members"; Object[] params = new Object[] {}; ResultSet rs = df.execSqlWithResult(sql, params); while (rs.next()) { Members m = new Members(); m.setId(rs.getInt("id")); m.setUsername(rs.getString("username")); m.setPassword(rs.getString("password")); list.add(m); } } catch (SQLException e) { e.printStackTrace(); } return list; } public List<Members> getAllByPage(int page, String condition) { int pageSize = 4; List<Members> list = new ArrayList<Members>(); try { int startId = (page - 1) * pageSize + 1, endId = page * pageSize; String sql = "select * from (select *,row_number() over(order by id) as rowid from members where username like ?) a " + "where rowid>=" + startId + " and rowid<=" + endId; Object[] params = new Object[] { "%" + condition + "%" }; ResultSet rs = df.execSqlWithResult(sql, params); while (rs.next()) { Members m = new Members(); m.setId(rs.getInt("id")); m.setUsername(rs.getString("username")); m.setPassword(rs.getString("password")); list.add(m); } } catch (SQLException e) { e.printStackTrace(); } return list; } public int getAllPage(String condition) { int totalPage = 0, pageSize = 4; try { String sql = "select (count(*)-1)/" + pageSize + "+1 totalPage from members where username like ?"; Object[] params = new Object[] { "%" + condition + "%" }; ResultSet rs = df.execSqlWithResult(sql, params); while (rs.next()) { totalPage = rs.getInt("totalPage"); } } catch (SQLException e) { e.printStackTrace(); } return totalPage; } }


package model; public class Members { private int id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值