JavaWeb-综合案例(用户信息)-学习笔记05【分页查询功能】
生活随笔
收集整理的這篇文章主要介紹了
JavaWeb-综合案例(用户信息)-学习笔记05【分页查询功能】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
- Java后端 學(xué)習(xí)路線 筆記匯總表【黑馬程序員】
目錄
第4節(jié) 分頁查詢功能
分頁查詢功能_分析
Bootstrap官網(wǎng) 分頁禁用和激活狀態(tài)
分頁查詢功能——分析圖
分頁查詢功能_代碼實現(xiàn)_具體分析
PageBean.java
分頁查詢功能——具體分析圖
分頁查詢功能_代碼實現(xiàn)_后臺代碼
FindUserByPageServlet.java
UserService.java
UserServiceImpl.java
UserDaoImpl.java
分頁查詢 實現(xiàn)效果
分頁查詢功能_代碼實現(xiàn)_前臺代碼
list.jsp
第4節(jié) 分頁查詢功能
分頁查詢功能_分析
分頁查詢的好處:
Bootstrap官網(wǎng) 分頁禁用和激活狀態(tài)
分頁查詢功能——分析圖
分頁查詢功能分頁查詢功能_代碼實現(xiàn)_具體分析
PageBean.java
package cn.itcast.domain;import java.util.List;/*** 分頁對象*/ public class PageBean<T> {private int totalCount; //總記錄數(shù)private int totalPage; //總頁碼private List<T> list; //每頁的數(shù)據(jù)private int currentPage; //當(dāng)前頁碼private int rows; //每頁顯示的記錄數(shù)public int getTotalCount() {return totalCount;}public void setTotalCount(int totalCount) {this.totalCount = totalCount;}public int getTotalPage() {return totalPage;}public void setTotalPage(int totalPage) {this.totalPage = totalPage;}public List<T> getList() {return list;}public void setList(List<T> list) {this.list = list;}public int getCurrentPage() {return currentPage;}public void setCurrentPage(int currentPage) {this.currentPage = currentPage;}public int getRows() {return rows;}public void setRows(int rows) {this.rows = rows;}@Overridepublic String toString() {return "PageBean{" +"totalCount=" + totalCount +", totalPage=" + totalPage +", list=" + list +", currentPage=" + currentPage +", rows=" + rows +'}';} }分頁查詢功能——具體分析圖
分頁查詢功能分頁查詢功能_代碼實現(xiàn)_后臺代碼
FindUserByPageServlet.java
package cn.itcast.web.servlet;import cn.itcast.domain.PageBean; import cn.itcast.domain.User; import cn.itcast.service.UserService; import cn.itcast.service.impl.UserServiceImpl;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map;@WebServlet("/findUserByPageServlet") public class FindUserByPageServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");//1.獲取參數(shù)String currentPage = request.getParameter("currentPage");//當(dāng)前頁碼String rows = request.getParameter("rows");//每頁顯示條數(shù)if (currentPage == null || "".equals(currentPage)) {currentPage = "1";}if (rows == null || "".equals(rows)) {rows = "5";}//獲取條件查詢參數(shù)Map<String, String[]> condition = request.getParameterMap();//2.調(diào)用service查詢UserService service = new UserServiceImpl();PageBean<User> pb = service.findUserByPage(currentPage, rows, condition);System.out.println(pb);//3.將PageBean存入requestrequest.setAttribute("pb", pb);request.setAttribute("condition", condition);//將查詢條件存入request//4.轉(zhuǎn)發(fā)到list.jsprequest.getRequestDispatcher("/list.jsp").forward(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);} }UserService.java
UserServiceImpl.java
UserDaoImpl.java
package cn.itcast.dao.impl;import cn.itcast.dao.UserDao; import cn.itcast.domain.User; import cn.itcast.util.JDBCUtils; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate;import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set;public class UserDaoImpl implements UserDao {private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());@Overridepublic List<User> findAll() {//使用JDBC操作數(shù)據(jù)庫...//1.定義sqlString sql = "select * from user";List<User> users = template.query(sql, new BeanPropertyRowMapper<User>(User.class));return users;}@Overridepublic User findUserByUsernameAndPassword(String username, String password) {try {String sql = "select * from user where username = ? and password = ?";User user = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), username, password);return user;} catch (Exception e) {e.printStackTrace();return null;}}@Overridepublic void add(User user) {//1.定義sqlString sql = "insert into user values(null,?,?,?,?,?,?,null,null)";//2.執(zhí)行sqltemplate.update(sql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail());}@Overridepublic void delete(int id) {//1.定義sqlString sql = "delete from user where id = ?";//2.執(zhí)行sqltemplate.update(sql, id);}@Overridepublic User findById(int id) {String sql = "select * from user where id = ?";return template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), id);}@Overridepublic void update(User user) {String sql = "update user set name = ?,gender = ? ,age = ? , address = ? , qq = ?, email = ? where id = ?";template.update(sql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail(), user.getId());}@Overridepublic int findTotalCount(Map<String, String[]> condition) {//1.定義模板初始化sqlString sql = "select count(*) from user where 1 = 1 ";StringBuilder sb = new StringBuilder(sql);//2.遍歷mapSet<String> keySet = condition.keySet();//定義參數(shù)的集合List<Object> params = new ArrayList<Object>();for (String key : keySet) {//排除分頁條件參數(shù)if ("currentPage".equals(key) || "rows".equals(key)) {continue;}//獲取valueString value = condition.get(key)[0];//判斷value是否有值if (value != null && !"".equals(value)) {//有值sb.append(" and " + key + " like ? ");params.add("%" + value + "%");//?條件的值}}System.out.println(sb.toString());System.out.println(params);return template.queryForObject(sb.toString(), Integer.class, params.toArray());}@Overridepublic List<User> findByPage(int start, int rows, Map<String, String[]> condition) {String sql = "select * from user where 1 = 1 ";StringBuilder sb = new StringBuilder(sql);//2.遍歷mapSet<String> keySet = condition.keySet();//定義參數(shù)的集合List<Object> params = new ArrayList<Object>();for (String key : keySet) {//排除分頁條件參數(shù)if ("currentPage".equals(key) || "rows".equals(key)) {continue;}//獲取valueString value = condition.get(key)[0];//判斷value是否有值if (value != null && !"".equals(value)) {//有值sb.append(" and " + key + " like ? ");params.add("%" + value + "%");//?條件的值}}//添加分頁查詢sb.append(" limit ?,? ");//添加分頁查詢參數(shù)值params.add(start);params.add(rows);sql = sb.toString();System.out.println(sql);System.out.println(params);return template.query(sql, new BeanPropertyRowMapper<User>(User.class), params.toArray());} }分頁查詢 實現(xiàn)效果
分頁查詢功能_代碼實現(xiàn)_前臺代碼
list.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <!-- 網(wǎng)頁使用的語言 --> <html lang="zh-CN"> <head><!-- 指定字符集 --><meta charset="utf-8"><!-- 使用Edge最新的瀏覽器的渲染方式 --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- viewport視口:網(wǎng)頁可以根據(jù)設(shè)置的寬度自動進行適配,在瀏覽器的內(nèi)部虛擬一個容器,容器的寬度與設(shè)備的寬度相同。width: 默認(rèn)寬度與設(shè)備的寬度相同initial-scale: 初始的縮放比,為1:1 --><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3個meta標(biāo)簽*必須*放在最前面,任何其他內(nèi)容都*必須*跟隨其后! --><title>用戶信息管理系統(tǒng)</title><!-- 1. 導(dǎo)入CSS的全局樣式 --><link href="css/bootstrap.min.css" rel="stylesheet"><!-- 2. jQuery導(dǎo)入,建議使用1.9以上的版本 --><script src="js/jquery-2.1.0.min.js"></script><!-- 3. 導(dǎo)入bootstrap的js文件 --><script src="js/bootstrap.min.js"></script><style type="text/css">td, th {text-align: center;}</style><script>function deleteUser(id) {//用戶安全提示if (confirm("您確定要刪除嗎?")) {//訪問路徑location.href = "${pageContext.request.contextPath}/delUserServlet?id=" + id;}}window.onload = function () {//給刪除選中按鈕添加單擊事件document.getElementById("delSelected").onclick = function () {if (confirm("您確定要刪除選中條目嗎?")) {var flag = false;//判斷是否有選中條目var cbs = document.getElementsByName("uid");for (var i = 0; i < cbs.length; i++) {if (cbs[i].checked) {//有一個條目選中了flag = true;break;}}if (flag) {//有條目被選中//表單提交document.getElementById("form").submit();}}}//1.獲取第一個cbdocument.getElementById("firstCb").onclick = function () {//2.獲取下邊列表中所有的cbvar cbs = document.getElementsByName("uid");//3.遍歷for (var i = 0; i < cbs.length; i++) {//4.設(shè)置這些cbs[i]的checked狀態(tài) = firstCb.checkedcbs[i].checked = this.checked;}}}</script> </head> <body> <div class="container"><h3 style="text-align: center">用戶信息列表</h3><div style="float: left;"><form class="form-inline" action="${pageContext.request.contextPath}/findUserByPageServlet" method="post"><div class="form-group"><label for="exampleInputName2">姓名</label><input type="text" name="name" value="${condition.name[0]}" class="form-control" id="exampleInputName2"></div><div class="form-group"><label for="exampleInputName3">籍貫</label><input type="text" name="address" value="${condition.address[0]}" class="form-control"id="exampleInputName3"></div><div class="form-group"><label for="exampleInputEmail2">郵箱</label><input type="text" name="email" value="${condition.email[0]}" class="form-control"id="exampleInputEmail2"></div><button type="submit" class="btn btn-default">查詢</button></form></div><div style="float: right;margin: 5px;"><a class="btn btn-primary" href="${pageContext.request.contextPath}/add.jsp">添加聯(lián)系人</a><a class="btn btn-primary" href="javascript:void(0);" id="delSelected">刪除選中</a></div><form id="form" action="${pageContext.request.contextPath}/delSelectedServlet" method="post"><table border="1" class="table table-bordered table-hover"><tr class="success"><th><input type="checkbox" id="firstCb"></th><th>編號</th><th>姓名</th><th>性別</th><th>年齡</th><th>籍貫</th><th>QQ</th><th>郵箱</th><th>操作</th></tr><c:forEach items="${pb.list}" var="user" varStatus="s"><tr><td><input type="checkbox" name="uid" value="${user.id}"></td><td>${s.count}</td><td>${user.name}</td><td>${user.gender}</td><td>${user.age}</td><td>${user.address}</td><td>${user.qq}</td><td>${user.email}</td><td><a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/findUserServlet?id=${user.id}">修改</a> <a class="btn btn-default btn-sm" href="javascript:deleteUser(${user.id});">刪除</a></td></tr></c:forEach></table></form><div><nav aria-label="Page navigation"><ul class="pagination"><c:if test="${pb.currentPage == 1}"><li class="disabled"></c:if><c:if test="${pb.currentPage != 1}"><li></c:if><a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${pb.currentPage - 1}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}"aria-label="Previous"><span aria-hidden="true">«</span></a></li><c:forEach begin="1" end="${pb.totalPage}" var="i"><c:if test="${pb.currentPage == i}"><li class="active"><a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${i}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}">${i}</a></li></c:if><c:if test="${pb.currentPage != i}"><li><a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${i}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}">${i}</a></li></c:if></c:forEach><li><a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${pb.currentPage + 1}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}"aria-label="Next"><span aria-hidden="true">»</span></a></li><span style="font-size: 25px;margin-left: 5px;">共${pb.totalCount}條記錄,共${pb.totalPage}頁</span></ul></nav></div> </div> </body> </html>加油~
總結(jié)
以上是生活随笔為你收集整理的JavaWeb-综合案例(用户信息)-学习笔记05【分页查询功能】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaWeb-综合案例(用户信息)-学
- 下一篇: JavaWeb-综合案例(用户信息)-学