日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

JavaWeb-综合案例(用户信息)-学习笔记05【分页查询功能】

發(fā)布時(shí)間:2024/9/30 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaWeb-综合案例(用户信息)-学习笔记05【分页查询功能】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • Java后端 學(xué)習(xí)路線 筆記匯總表【黑馬程序員】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記01【列表查詢】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記02【登錄功能】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記03【添加刪除修改功能】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記04【刪除選中功能】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記05【分頁(yè)查詢功能】
  • JavaWeb-綜合案例(用戶信息)-學(xué)習(xí)筆記06【復(fù)雜條件查詢功能】
  • 目錄

    第4節(jié) 分頁(yè)查詢功能

    分頁(yè)查詢功能_分析

    Bootstrap官網(wǎng) 分頁(yè)禁用和激活狀態(tài)

    分頁(yè)查詢功能——分析圖

    分頁(yè)查詢功能_代碼實(shí)現(xiàn)_具體分析

    PageBean.java

    分頁(yè)查詢功能——具體分析圖

    分頁(yè)查詢功能_代碼實(shí)現(xiàn)_后臺(tái)代碼

    FindUserByPageServlet.java

    UserService.java

    UserServiceImpl.java

    UserDaoImpl.java

    分頁(yè)查詢 實(shí)現(xiàn)效果

    分頁(yè)查詢功能_代碼實(shí)現(xiàn)_前臺(tái)代碼

    list.jsp


    第4節(jié) 分頁(yè)查詢功能

    分頁(yè)查詢功能_分析

    分頁(yè)查詢的好處:

  • 減輕服務(wù)器內(nèi)存的開銷;
  • 提升用戶體驗(yàn)。
  • Bootstrap官網(wǎng) 分頁(yè)禁用和激活狀態(tài)

    分頁(yè)查詢功能——分析圖

    分頁(yè)查詢功能

    分頁(yè)查詢功能_代碼實(shí)現(xiàn)_具體分析

    PageBean.java

    package cn.itcast.domain;import java.util.List;/*** 分頁(yè)對(duì)象*/ public class PageBean<T> {private int totalCount; //總記錄數(shù)private int totalPage; //總頁(yè)碼private List<T> list; //每頁(yè)的數(shù)據(jù)private int currentPage; //當(dāng)前頁(yè)碼private int rows; //每頁(yè)顯示的記錄數(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 +'}';} }

    分頁(yè)查詢功能——具體分析圖

    分頁(yè)查詢功能

    分頁(yè)查詢功能_代碼實(shí)現(xiàn)_后臺(tái)代碼

    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)前頁(yè)碼String rows = request.getParameter("rows");//每頁(yè)顯示條數(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ù)庫(kù)...//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) {//排除分頁(yè)條件參數(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) {//排除分頁(yè)條件參數(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 + "%");//?條件的值}}//添加分頁(yè)查詢sb.append(" limit ?,? ");//添加分頁(yè)查詢參數(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());} }

    分頁(yè)查詢 實(shí)現(xiàn)效果

    分頁(yè)查詢功能_代碼實(shí)現(xiàn)_前臺(tái)代碼

    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)頁(yè)使用的語(yǔ)言 --> <html lang="zh-CN"> <head><!-- 指定字符集 --><meta charset="utf-8"><!-- 使用Edge最新的瀏覽器的渲染方式 --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- viewport視口:網(wǎng)頁(yè)可以根據(jù)設(shè)置的寬度自動(dòng)進(jìn)行適配,在瀏覽器的內(nèi)部虛擬一個(gè)容器,容器的寬度與設(shè)備的寬度相同。width: 默認(rèn)寬度與設(shè)備的寬度相同initial-scale: 初始的縮放比,為1:1 --><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3個(gè)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("您確定要?jiǎng)h除嗎?")) {//訪問(wèn)路徑location.href = "${pageContext.request.contextPath}/delUserServlet?id=" + id;}}window.onload = function () {//給刪除選中按鈕添加單擊事件document.getElementById("delSelected").onclick = function () {if (confirm("您確定要?jiǎng)h除選中條目嗎?")) {var flag = false;//判斷是否有選中條目var cbs = document.getElementsByName("uid");for (var i = 0; i < cbs.length; i++) {if (cbs[i].checked) {//有一個(gè)條目選中了flag = true;break;}}if (flag) {//有條目被選中//表單提交document.getElementById("form").submit();}}}//1.獲取第一個(gè)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>編號(hào)</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>&nbsp;<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">&laquo;</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">&raquo;</span></a></li><span style="font-size: 25px;margin-left: 5px;">共${pb.totalCount}條記錄,共${pb.totalPage}頁(yè)</span></ul></nav></div> </div> </body> </html>

    加油~

    總結(jié)

    以上是生活随笔為你收集整理的JavaWeb-综合案例(用户信息)-学习笔记05【分页查询功能】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 杨幂国产精品一区二区 | 五月婷婷激情四射 | 日韩av视屏 | 在线不卡免费av | 青青操免费在线视频 | 特黄老太婆aa毛毛片 | 天天久久综合网 | 国产亚洲一区二区不卡 | 精品国产乱子伦一区二区 | 干干干操操操 | 免费黄色小视频在线观看 | 色啪网站 | 成人午夜精品无码区 | 美女扒开屁股让男人捅 | 蜜臀网在线 | 色哟哟免费观看 | 色婷婷国产精品久久包臀 | 国产精品视频一区二区三区在3 | 亚洲国产精品一区二区三区 | 激情亚洲天堂 | av在线播放一区 | 黄色片网站免费在线观看 | 国内成人精品视频 | 精品久久久久一区二区 | 日本免费一区二区三区 | 国产精品丝袜黑色高跟鞋的设计特点 | 亚洲v视频 | 亚洲精品国产精品国 | 亚洲另类视频 | 神马久久香蕉 | 亚洲乱码国产乱码精品 | 最新av免费在线观看 | 性高潮久久久久久久久久 | 狠狠的日| 小柔好湿好紧太爽了国产网址 | 色成人免费网站 | 男女性高潮免费网站 | 国产最新视频 | 日韩精品一区二区三区丰满 | 亚洲av日韩av不卡在线观看 | 婷婷视频网 | 在线观看中文字幕码 | 学生孕妇videosex性欧美 | 日本xxxwww | 久久精品亚洲天堂 | 免费国产黄色网址 | 欧美成一区二区三区 | 精品香蕉99久久久久网站 | 亚洲熟女一区二区三区 | 国产精品毛片在线 | 国产精品一区二区毛片 | 精品人妻一区二区三区久久夜夜嗨 | 国产在线观看h | 精品无码国产一区二区三区av | 欧美黑人xxxⅹ高潮交 | 日韩三级在线播放 | 91丨九色丨丰满人妖 | 白白色视频在线 | 秘密基地在线观看完整版免费 | 伊人影视久久 | 婷婷av在线| 亚洲在线不卡 | 亚洲伦乱 | 国产五区 | 办公室大战高跟丝袜秘书经理ol | 亚洲中文字幕无码爆乳av | 日韩三级一区二区 | 国产日韩欧美视频在线 | 精品少妇视频 | 最新av电影网站 | 俺也去在线视频 | 丰满熟妇肥白一区二区在线 | 国产传媒国产传媒 | 在线精品小视频 | 欧美精品一区二区蜜桃 | 日韩区欧美区 | 134vcc影院免费观看 | 亚洲一区 视频 | av激情影院 | 国产精品一区二区三区免费在线观看 | 欧美在线日韩 | 免费三片在线视频 | 草草影院ccyycom | 四虎影视在线播放 | 日韩女优网站 | 国产av天堂无码一区二区三区 | 国产精品久久久久久亚洲色 | 精品日韩久久 | 91在线观| 香蕉视频网页版 | 一区二区精 | 亚洲色成人网站www永久四虎 | 午夜三级福利 | 91蝌蚪少妇偷拍 | 国产精品久久999 | 五月婷婷丁香花 | 大尺度电影在线 | 北条麻妃一区二区三区在线观看 | 成人在线一区二区三区 |