条件查询

dao

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

service

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

userList servlet

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String userName = request.getParameter("userName");
String sex = request.getParameter("sex"); UserService service = new UserService();
List<User> userList = null;
try {
//userList = service.GetAllService();
userList = service.GetUserBySearch(userName,sex);
} catch (SQLException e) {
e.printStackTrace();
} request.setAttribute("userName",userName);
request.setAttribute("sex",sex); request.setAttribute("userList", userList);
request.getRequestDispatcher("userList.jsp").forward(request,response);
}

userList.jsp

<%@ page import="com.david.domain.User" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<div>
按用户名称搜索:<input id="txtUserName" value="${userName}"> &nbsp;
按用户性别查找:<select id="selSex">
<option value="">全部</option>
<option value="男">男</option>
<option value="女">女</option>
</select> &nbsp;
<button type="button" onclick="search()">搜索</button>
</div>
<script>
//设置默认值
window.onload = function (){
for(var i = 0;i<document.getElementById("selSex").options.length;i++){
var option = document.getElementById("selSex").options[i];
if(option.value == "${sex}"){
option.selected = true;
}
}
} function search(){
var userName = document.getElementById("txtUserName").value;
var sex = "";
for(var i = 0;i<document.getElementById("selSex").options.length;i++){
if(document.getElementById("selSex").options[i].selected){
sex = document.getElementById("selSex").options[i].value;
}
}
location.href='userList?userName='+userName+"&sex="+sex;
}
</script>
<table>
<tr>
<th>用户ID</th>
<th>用户名</th>
<th>用户密码</th>
<th>用户年龄</th>
<th>用户性别</th>
<th>操作</th>
</tr>
<%
if (request.getAttribute("userList") != null) {
%>
<%for (User u : (List<User>) request.getAttribute("userList")) {%>
<tr>
<td><%=u.getUserId()%>
</td>
<td><%=u.getUserName()%>
</td>
<td><%=u.getPassWord()%>
</td>
<td><%=u.getAge()%>
</td>
<td><%=u.getSex()%>
</td>
<td>
<a href="GetUserById?userId=<%=u.getUserId()%>">修改</a>
<a href="DeleteUser?userId=<%=u.getUserId()%>">删除</a>
</td>
</tr>
<%}%>
<%}%>
</table>
<a href="AddUser.jsp">添加用户</a>
</body>
</html>

列表分页

在domain中创建pageBean实体

package com.david.domain;

import java.util.List;

public class PageBean<T> {
//当前页
private int curPage;
//当前显示条数
private int pageSize;
//总页数
private int totalPage;
//总条数
private int totalCount;
//展示的数据
private List<T> Data; public int getCurPage() {
return curPage;
} public int getPageSize() {
return pageSize;
} public int getTotalPage() {
return totalPage;
} public int getTotalCount() {
return totalCount;
} public List<T> getData() {
return Data;
} public void setCurPage(int curPage) {
this.curPage = curPage;
} public void setPageSize(int pageSize) {
this.pageSize = pageSize;
} public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
} public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
} public void setData(List<T> data) {
Data = data;
} }

在dao中 创建分页方法

//获取总条数
public int GetUserCount(String userName, String sex) throws SQLException {
String sql = "select count(*) from User where 1=1 ";
List<String> params = new ArrayList<String>();
if (userName != null && userName != "") {
sql += " and UserName like ?";
params.add("%" + userName + "%");
}
if (sex != null && sex != "") {
sql += " and sex = ?";
params.add(sex);
}
QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
long count = (long)qr.query(sql,new ScalarHandler(),params.toArray());
return (int)count;
} public List<User> GetUserListForPageBean(String userName, String sex, int page, int pageSize) throws SQLException {
String sql = "select * from User where 1=1 ";
List<Object> params = new ArrayList<Object>();
if (userName != null && userName != "") {
sql += " and UserName like ?";
params.add("%" + userName + "%");
}
if (sex != null && sex != "") {
sql += " and sex = ?";
params.add(sex);
}
sql += " limit ?,?";
page = (page - 1) * pageSize;
params.add(page);
params.add(pageSize); QueryRunner qr = new QueryRunner(DBUtil.GetDataSource());
List<User> users = qr.query(sql, new BeanListHandler<User>(User.class), params.toArray());
return users;
}

service

public PageBean<User> GetUserListForPageBean(String userName, String sex, int page, int pageSize) throws SQLException {
UserDao dao = new UserDao();
PageBean pageBean = new PageBean();
pageBean.setCurPage(page);
pageBean.setPageSize(pageSize);
int totalCount = dao.GetUserCount(userName, sex);
pageBean.setTotalCount(totalCount);
int totalPage = (int) Math.ceil(1.0 * totalCount / pageSize);
pageBean.setTotalPage(totalPage);
List<User> data = dao.GetUserListForPageBean(userName,sex,page,pageSize);
pageBean.setData(data);
return pageBean;
}

UserListForPage servlet

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String userName = request.getParameter("userName");
String sex = request.getParameter("sex");
String page = request.getParameter("page"); int curPage = 1;
if(page != null && page != ""){
curPage = Integer.parseInt(page);
}
int pageSize = 5; UserService service = new UserService();
PageBean<User> pageBean = null;
try {
pageBean = service.GetUserListForPageBean(userName,sex,curPage,pageSize);
} catch (SQLException e) {
e.printStackTrace();
} request.setAttribute("userName",userName);
request.setAttribute("sex",sex); request.setAttribute("pageBean", pageBean);
request.getRequestDispatcher("userListForPage.jsp").forward(request,response);
}

web.xml

    <servlet>
<servlet-name>UserListForPage</servlet-name>
<servlet-class>com.david.web.UserListForPage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserListForPage</servlet-name>
<url-pattern>/userListForPage</url-pattern>
</servlet-mapping>

userListForPage.jsp

<%@ page import="com.david.domain.User" %>
<%@ page import="java.util.List" %>
<%@ page import="com.david.domain.PageBean" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<div>
按用户名称搜索:<input id="txtUserName" value="${userName}"> &nbsp;
按用户性别查找:<select id="selSex">
<option value="">全部</option>
<option value="男">男</option>
<option value="女">女</option>
</select> &nbsp;
<button type="button" onclick="search()">搜索</button>
<a href="AddUser.jsp">添加用户</a>
</div>
<script>
//设置默认值
window.onload = function (){
for(var i = 0;i<document.getElementById("selSex").options.length;i++){
var option = document.getElementById("selSex").options[i];
if(option.value == "${sex}"){
option.selected = true;
}
}
} function search(){
var userName = document.getElementById("txtUserName").value;
var sex = "";
for(var i = 0;i<document.getElementById("selSex").options.length;i++){
if(document.getElementById("selSex").options[i].selected){
sex = document.getElementById("selSex").options[i].value;
}
}
location.href='userList?userName='+userName+"&sex="+sex;
}
</script>
<table>
<tr>
<th>用户ID</th>
<th>用户名</th>
<th>用户密码</th>
<th>用户年龄</th>
<th>用户性别</th>
<th>操作</th>
</tr>
<%
PageBean pageBean = (PageBean)request.getAttribute("pageBean");
if (pageBean != null && pageBean.getData() != null) {
%>
<%for (User u : (List<User>)pageBean.getData()) {%>
<tr>
<td><%=u.getUserId()%>
</td>
<td><%=u.getUserName()%>
</td>
<td><%=u.getPassWord()%>
</td>
<td><%=u.getAge()%>
</td>
<td><%=u.getSex()%>
</td>
<td>
<a href="GetUserById?userId=<%=u.getUserId()%>">修改</a>
<a href="DeleteUser?userId=<%=u.getUserId()%>">删除</a>
</td>
</tr>
<%}%>
<%}%>
</table>
<div class="page">
<%if(pageBean.getCurPage() != 1){%>
<a href="?page=1">首页</a>
<a href="?page=<%=pageBean.getCurPage()-1%>">上一页</a>
<%}%> <%for(int i = 1;i<=pageBean.getTotalPage();i++){
%>
<%if(pageBean.getCurPage() == i){%>
<a href="?page=<%=i%>" class="currentPage"><%=i%></a>
<%}else{%>
<a href="?page=<%=i%>"><%=i%></a>
<%}%>
<%}%>
<%if(pageBean.getCurPage() != pageBean.getTotalPage()){%>
<a href="?page=<%=pageBean.getCurPage()+1%>">下一页</a>
<a href="?page=<%=pageBean.getTotalPage()%>">尾页</a>
<%}%>
共<%=pageBean.getTotalCount()%>条数据,<%=pageBean.getTotalPage()%>页。
</div>
<style>
.page a{
font-size:12px;
text-decoration: none;
color:#ccc;
}
.page .currentPage{
color:#000;
font-size:20px;
}
</style>
</body>
</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. Rust语言之HelloWorld Web版

    Rust语言之HelloWorld Web版 下面这篇文章值得仔细研读: http://arthurtw.github.io/2014/12/21/rust-anti-sloppy-programmi ...

  2. C++异常处理 - 栈解旋,异常接口声明,异常类型和异常变量的生命周期

    栈解旋(unwinding) 异常被抛出后,从进入try块起,到异常被抛掷前,这期间在栈上的构造的所有对象,都会被自动析构.析构的顺序与构造的顺序相反.这一过程称为栈的解旋(unwinding). d ...

  3. STL算法设计理念 - 函数对象和函数对象当参数和返回值

    函数对象: 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象.一个类对象,表现出一个函数的特征,就是通过"对象名+(参数列表)&qu ...

  4. mysql进阶(十三)命令行导出导入数据库

    MySQL命令行导出导入数据库 MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd D:\Program Files\ ...

  5. 【一天一道LeetCode】#328 Odd Even Linked List

    一天一道LeetCode系列 (一)题目 Given a singly linked list, group all odd nodes together followed by the even n ...

  6. ROS探索总结(十五)——amcl(导航与定位)

    在理解了move_base的基础上,我们开始机器人的定位与导航.gmaping包是用来生成地图的,需要使用实际的机器人获取激光或者深度数据,所以我们先在已有的地图上进行导航与定位的仿真. amcl是移 ...

  7. Linux - Shell变量的配置守则

    变量的配置守则 变量与变量内容以一个等号『=』来连结,如下所示: 『myname=VBird』 等号两边不能直接接空格符,如下所示为错误: 『myname = VBird』或『myname=VBird ...

  8. objc直接通过指针访问对象实例变量

    我们现在来做一件被认为是very bad的事情,如题所示:无论实例变量是私有的.保护的都可以通过地址访问到,并且还可以修改之.这可以称之为所谓的"超级键值编码". 首先上代码: # ...

  9. obj-c编程19:关联对象

    对于一些无法子类化的实例对象来说,如果希望将一个对象与其绑定该如何做呢? 以下示例虚构了一个HyConsoleAlert类,User类将会使用该类在控制台显示定制的告警.如果User中包括多个Aler ...

  10. SharePoint 用户控件编写的简单介绍

    我们开发中,通常需要写各种各样的部件来实现我们的展示或者功能,下面就介绍下刚刚接触的QuickPart+用户控件的方式,算是自己的学习笔记,也和大家交流下心得. 1. 新建Web应用程序 2. 在项目 ...