条件查询

dao

  1. //根据搜索条件筛选数据
  2. public List<User> GetUserBySearch(String userName, String sex) throws SQLException {
  3. String sql = "select * from User where 1=1 ";
  4. List<String> params = new ArrayList<String>();
  5. if (userName != null && userName != "") {
  6. sql += " and UserName like ?";
  7. params.add("%"+userName+"%");
  8. }
  9. if (sex != null && sex != "") {
  10. sql += " and sex = ?";
  11. params.add(sex);
  12. }
  13. QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
  14. List<User> users = qr.query(sql, new BeanListHandler<User>(User.class), params.toArray());
  15. return users;
  16. }

service

  1. public List<User> GetUserBySearch(String userName,String sex) throws SQLException {
  2. UserDao dao = new UserDao();
  3. return dao.GetUserBySearch(userName,sex);
  4. }

userList servlet

  1. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  2.  
  3. String userName = request.getParameter("userName");
  4. String sex = request.getParameter("sex");
  5.  
  6. UserService service = new UserService();
  7. List<User> userList = null;
  8. try {
  9. //userList = service.GetAllService();
  10. userList = service.GetUserBySearch(userName,sex);
  11. } catch (SQLException e) {
  12. e.printStackTrace();
  13. }
  14.  
  15. request.setAttribute("userName",userName);
  16. request.setAttribute("sex",sex);
  17.  
  18. request.setAttribute("userList", userList);
  19. request.getRequestDispatcher("userList.jsp").forward(request,response);
  20. }

userList.jsp

  1. <%@ page import="com.david.domain.User" %>
  2. <%@ page import="java.util.List" %>
  3. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  4. <html>
  5. <head>
  6. <title>用户列表</title>
  7. </head>
  8. <body>
  9. <div>
  10. 按用户名称搜索:<input id="txtUserName" value="${userName}"> &nbsp;
  11. 按用户性别查找:<select id="selSex">
  12. <option value="">全部</option>
  13. <option value="男"></option>
  14. <option value="女"></option>
  15. </select> &nbsp;
  16. <button type="button" onclick="search()">搜索</button>
  17. </div>
  18. <script>
  19. //设置默认值
  20. window.onload = function (){
  21. for(var i = 0;i<document.getElementById("selSex").options.length;i++){
  22. var option = document.getElementById("selSex").options[i];
  23. if(option.value == "${sex}"){
  24. option.selected = true;
  25. }
  26. }
  27. }
  28.  
  29. function search(){
  30. var userName = document.getElementById("txtUserName").value;
  31. var sex = "";
  32. for(var i = 0;i<document.getElementById("selSex").options.length;i++){
  33. if(document.getElementById("selSex").options[i].selected){
  34. sex = document.getElementById("selSex").options[i].value;
  35. }
  36. }
  37. location.href='userList?userName='+userName+"&sex="+sex;
  38. }
  39. </script>
  40. <table>
  41. <tr>
  42. <th>用户ID</th>
  43. <th>用户名</th>
  44. <th>用户密码</th>
  45. <th>用户年龄</th>
  46. <th>用户性别</th>
  47. <th>操作</th>
  48. </tr>
  49. <%
  50. if (request.getAttribute("userList") != null) {
  51. %>
  52. <%for (User u : (List<User>) request.getAttribute("userList")) {%>
  53. <tr>
  54. <td><%=u.getUserId()%>
  55. </td>
  56. <td><%=u.getUserName()%>
  57. </td>
  58. <td><%=u.getPassWord()%>
  59. </td>
  60. <td><%=u.getAge()%>
  61. </td>
  62. <td><%=u.getSex()%>
  63. </td>
  64. <td>
  65. <a href="GetUserById?userId=<%=u.getUserId()%>">修改</a>
  66. <a href="DeleteUser?userId=<%=u.getUserId()%>">删除</a>
  67. </td>
  68. </tr>
  69. <%}%>
  70. <%}%>
  71. </table>
  72. <a href="AddUser.jsp">添加用户</a>
  73. </body>
  74. </html>

列表分页

在domain中创建pageBean实体

  1. package com.david.domain;
  2.  
  3. import java.util.List;
  4.  
  5. public class PageBean<T> {
  6. //当前页
  7. private int curPage;
  8. //当前显示条数
  9. private int pageSize;
  10. //总页数
  11. private int totalPage;
  12. //总条数
  13. private int totalCount;
  14. //展示的数据
  15. private List<T> Data;
  16.  
  17. public int getCurPage() {
  18. return curPage;
  19. }
  20.  
  21. public int getPageSize() {
  22. return pageSize;
  23. }
  24.  
  25. public int getTotalPage() {
  26. return totalPage;
  27. }
  28.  
  29. public int getTotalCount() {
  30. return totalCount;
  31. }
  32.  
  33. public List<T> getData() {
  34. return Data;
  35. }
  36.  
  37. public void setCurPage(int curPage) {
  38. this.curPage = curPage;
  39. }
  40.  
  41. public void setPageSize(int pageSize) {
  42. this.pageSize = pageSize;
  43. }
  44.  
  45. public void setTotalPage(int totalPage) {
  46. this.totalPage = totalPage;
  47. }
  48.  
  49. public void setTotalCount(int totalCount) {
  50. this.totalCount = totalCount;
  51. }
  52.  
  53. public void setData(List<T> data) {
  54. Data = data;
  55. }
  56.  
  57. }

在dao中 创建分页方法

  1. //获取总条数
  2. public int GetUserCount(String userName, String sex) throws SQLException {
  3. String sql = "select count(*) from User where 1=1 ";
  4. List<String> params = new ArrayList<String>();
  5. if (userName != null && userName != "") {
  6. sql += " and UserName like ?";
  7. params.add("%" + userName + "%");
  8. }
  9. if (sex != null && sex != "") {
  10. sql += " and sex = ?";
  11. params.add(sex);
  12. }
  13. QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
  14. long count = (long)qr.query(sql,new ScalarHandler(),params.toArray());
  15. return (int)count;
  16. }
  17.  
  18. public List<User> GetUserListForPageBean(String userName, String sex, int page, int pageSize) throws SQLException {
  19. String sql = "select * from User where 1=1 ";
  20. List<Object> params = new ArrayList<Object>();
  21. if (userName != null && userName != "") {
  22. sql += " and UserName like ?";
  23. params.add("%" + userName + "%");
  24. }
  25. if (sex != null && sex != "") {
  26. sql += " and sex = ?";
  27. params.add(sex);
  28. }
  29. sql += " limit ?,?";
  30. page = (page - 1) * pageSize;
  31. params.add(page);
  32. params.add(pageSize);
  33.  
  34. QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
  35. List<User> users = qr.query(sql, new BeanListHandler<User>(User.class), params.toArray());
  36. return users;
  37. }

service

  1. public PageBean<User> GetUserListForPageBean(String userName, String sex, int page, int pageSize) throws SQLException {
  2. UserDao dao = new UserDao();
  3. PageBean pageBean = new PageBean();
  4. pageBean.setCurPage(page);
  5. pageBean.setPageSize(pageSize);
  6. int totalCount = dao.GetUserCount(userName, sex);
  7. pageBean.setTotalCount(totalCount);
  8. int totalPage = (int) Math.ceil(1.0 * totalCount / pageSize);
  9. pageBean.setTotalPage(totalPage);
  10. List<User> data = dao.GetUserListForPageBean(userName,sex,page,pageSize);
  11. pageBean.setData(data);
  12. return pageBean;
  13. }

UserListForPage servlet

  1. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  2.  
  3. String userName = request.getParameter("userName");
  4. String sex = request.getParameter("sex");
  5. String page = request.getParameter("page");
  6.  
  7. int curPage = 1;
  8. if(page != null && page != ""){
  9. curPage = Integer.parseInt(page);
  10. }
  11. int pageSize = 5;
  12.  
  13. UserService service = new UserService();
  14. PageBean<User> pageBean = null;
  15. try {
  16. pageBean = service.GetUserListForPageBean(userName,sex,curPage,pageSize);
  17. } catch (SQLException e) {
  18. e.printStackTrace();
  19. }
  20.  
  21. request.setAttribute("userName",userName);
  22. request.setAttribute("sex",sex);
  23.  
  24. request.setAttribute("pageBean", pageBean);
  25. request.getRequestDispatcher("userListForPage.jsp").forward(request,response);
  26. }

web.xml

  1. <servlet>
  2. <servlet-name>UserListForPage</servlet-name>
  3. <servlet-class>com.david.web.UserListForPage</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>UserListForPage</servlet-name>
  7. <url-pattern>/userListForPage</url-pattern>
  8. </servlet-mapping>

userListForPage.jsp

  1. <%@ page import="com.david.domain.User" %>
  2. <%@ page import="java.util.List" %>
  3. <%@ page import="com.david.domain.PageBean" %>
  4. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  5. <html>
  6. <head>
  7. <title>用户列表</title>
  8. </head>
  9. <body>
  10. <div>
  11. 按用户名称搜索:<input id="txtUserName" value="${userName}"> &nbsp;
  12. 按用户性别查找:<select id="selSex">
  13. <option value="">全部</option>
  14. <option value="男"></option>
  15. <option value="女"></option>
  16. </select> &nbsp;
  17. <button type="button" onclick="search()">搜索</button>
  18. <a href="AddUser.jsp">添加用户</a>
  19. </div>
  20. <script>
  21. //设置默认值
  22. window.onload = function (){
  23. for(var i = 0;i<document.getElementById("selSex").options.length;i++){
  24. var option = document.getElementById("selSex").options[i];
  25. if(option.value == "${sex}"){
  26. option.selected = true;
  27. }
  28. }
  29. }
  30.  
  31. function search(){
  32. var userName = document.getElementById("txtUserName").value;
  33. var sex = "";
  34. for(var i = 0;i<document.getElementById("selSex").options.length;i++){
  35. if(document.getElementById("selSex").options[i].selected){
  36. sex = document.getElementById("selSex").options[i].value;
  37. }
  38. }
  39. location.href='userList?userName='+userName+"&sex="+sex;
  40. }
  41. </script>
  42. <table>
  43. <tr>
  44. <th>用户ID</th>
  45. <th>用户名</th>
  46. <th>用户密码</th>
  47. <th>用户年龄</th>
  48. <th>用户性别</th>
  49. <th>操作</th>
  50. </tr>
  51. <%
  52. PageBean pageBean = (PageBean)request.getAttribute("pageBean");
  53. if (pageBean != null && pageBean.getData() != null) {
  54. %>
  55. <%for (User u : (List<User>)pageBean.getData()) {%>
  56. <tr>
  57. <td><%=u.getUserId()%>
  58. </td>
  59. <td><%=u.getUserName()%>
  60. </td>
  61. <td><%=u.getPassWord()%>
  62. </td>
  63. <td><%=u.getAge()%>
  64. </td>
  65. <td><%=u.getSex()%>
  66. </td>
  67. <td>
  68. <a href="GetUserById?userId=<%=u.getUserId()%>">修改</a>
  69. <a href="DeleteUser?userId=<%=u.getUserId()%>">删除</a>
  70. </td>
  71. </tr>
  72. <%}%>
  73. <%}%>
  74. </table>
  75. <div class="page">
  76. <%if(pageBean.getCurPage() != 1){%>
  77. <a href="?page=1">首页</a>
  78. <a href="?page=<%=pageBean.getCurPage()-1%>">上一页</a>
  79. <%}%>
  80.  
  81. <%for(int i = 1;i<=pageBean.getTotalPage();i++){
  82. %>
  83. <%if(pageBean.getCurPage() == i){%>
  84. <a href="?page=<%=i%>" class="currentPage"><%=i%></a>
  85. <%}else{%>
  86. <a href="?page=<%=i%>"><%=i%></a>
  87. <%}%>
  88. <%}%>
  89. <%if(pageBean.getCurPage() != pageBean.getTotalPage()){%>
  90. <a href="?page=<%=pageBean.getCurPage()+1%>">下一页</a>
  91. <a href="?page=<%=pageBean.getTotalPage()%>">尾页</a>
  92. <%}%>
  93. <%=pageBean.getTotalCount()%>条数据,<%=pageBean.getTotalPage()%>页。
  94. </div>
  95. <style>
  96. .page a{
  97. font-size:12px;
  98. text-decoration: none;
  99. color:#ccc;
  100. }
  101. .page .currentPage{
  102. color:#000;
  103. font-size:20px;
  104. }
  105. </style>
  106. </body>
  107. </html>

jsp 条件查询、列表分页的更多相关文章

  1. SSM整合 mybatis多条件查询与分页

    多条件查询与分页: 通过页面的houseName.floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象. 通 ...

  2. Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)

    推荐视频:尚硅谷Spring Data JPA视频教程,一学就会,百度一下就有, 后台代码:在DAO层继承Spring Data JPA的PagingAndSortingRepository接口实现的 ...

  3. TP条件查询和分页查询

    一.条件查询 前端页面 <!doctype html> <html> <head> <meta charset="utf-8"> & ...

  4. WebFrom 小程序【条件查询与分页整合】

    将前面的条件查询功能与分页显示整合到一个页面中 <%@ Page Language="C#" AutoEventWireup="true" CodeFil ...

  5. spring data jpa实现多条件查询(分页和不分页)

    目前的spring data jpa已经帮我们干了CRUD的大部分活了,但如果有些活它干不了(CrudRepository接口中没定义),那么只能由我们自己干了.这里要说的就是在它的框架里,如何实现自 ...

  6. (转)Entity Framework4.1实现动态多条件查询、分页和排序

    原文:http://www.cnblogs.com/ahui/archive/2011/08/04/2127282.html EF通用的分页实现: 1 2 3 4 5 6 7 8 9 10 11 12 ...

  7. PHP连接数据库实现多条件查询与分页功能——关于租房页面的完整实例操作

    租房页面如图: 代码如下: <!DOCTYPE html><html>    <head>        <meta charset="UTF-8& ...

  8. 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现

    一.不带有动态条件的查询 分页的实现 实例代码: controller:返回的是Page<>对象 @Controller @RequestMapping(value = "/eg ...

  9. thinkphp5.0多条件模糊查询以及多条件查询带分页如何保留参数

    1,多条件模糊查询 等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id’] = array(‘neq’,100 ...

随机推荐

  1. 【Unity Shaders】Diffuse Shading——创建一个自定义的diffuse lighting model(漫反射光照模型)

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  2. SpriteBuilder中应用智能精灵集之后提示找不到文件的解决

    SpriteBuilder中有一个将方便的功能,可以用文件夹中的若干图片生成1张图片;这称之为智能精灵集合(smart sprite sheet).好处是可以一次性的加载图片到显存中去,提升了性能. ...

  3. 如何设计一个web容器

    开发一个web容器涉及很多不同方面不同层面的技术,例如通信层的知识,程序语言层面的知识等等,且一个可用的web容器是一个比较庞大的系统,要说清楚需要很长的篇幅,本文旨在介绍如何设计一个web容器,只探 ...

  4. python 2.4 的字符串转时间(日期减法取间隔时间)

    python 2.4中datetime有strftime方法,而无strptime方法.不能对字符串进行格式转换.比如不能将"2013-10-22"转化为日期. 2.4中字符串转日 ...

  5. 二叉树的最大深度算法面试题-leetcode学习之旅(3)

    标题 Maximum Depth of Binary Tree 描述 The maximum depth is the number of nodes along the longest path f ...

  6. 线性表的顺序存储设计和实现 - API函数实现

    基本概念 设计与实现 插入元素算法 判断线性表是否合法 判断插入位置是否合法 把最后一个元素到插入位置的元素后移一个位置 将新元素插入 线性表长度加1 获取元素操作 判断线性表是否合法 判断位置是否合 ...

  7. Gradle 1.12用户指南翻译——第四十章. ANTLR 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  8. Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

    文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...

  9. 内核调试神器SystemTap — 更多功能与原理(三)

    a linux trace/probe tool. 官网:https://sourceware.org/systemtap/ 用户空间 SystemTap探测用户空间程序需要utrace的支持,3.5 ...

  10. 不错的网络协议栈测试工具 — Packetdrill

    Packetdrill - A network stack testing tool developed by Google. 项目:https://code.google.com/p/packetd ...