条件查询

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. numpy教程:逻辑函数Logic functions

    http://blog.csdn.net/pipisorry/article/details/48208433 真值测试Truth value testing all(a[, axis, out, k ...

  2. 数据的压缩存储与解压缩算法实现(C语言)

    在一些嵌入式的项目设计中,空间是相当宝贵的,因为一个CPU的存储是有限的,所以此时我们在保存数据的时候,喜欢来进行压缩保存,著名的有哈夫曼树算法,专门用来做压缩的算法,当然,本节我们不讨论这些稍微高级 ...

  3. Java 开源Wiki:XWiki

    XWiki是一个由Java编写的基于LGPL协议发布的开源wiki和应用平台.之前只接触过MediaWiki,但是MediaWiki是用PHP写的,一直想找找看有没有熟悉的JAVA语言的Wiki系统. ...

  4. IntelliJ Idea + Maven + Junit

    Caculate.java package com.yxj.TestJunit; /** * Created by ubd on 15-4-17. */ public class Caculate { ...

  5. Linux System Programming --Chapter Seven

    文件和目录管理 一.文件与其元数据 我们首先看一下一个简单的文本文件是怎么保存的: 打开vim,编辑一段文本: [root@localhost ~]# vim hello.txt 编辑内容如下: op ...

  6. Netflix公布个性化和推荐系统架构

    Netflix的推荐和个性化功能向来精准,前不久,他们公布了自己在这方面的系统架构. 3月27日,Netflix的工程师Xavier Amatrain和Justin Basilico在官方博客发布文章 ...

  7. Mybatis中文查询没有结果

    我用中文参数去查找数据,没有返回结果,应该是乱码问题 进行如下配置问题消失:jdbc:mysql://localhost:3306/appstore_db?useUnicode=true&ch ...

  8. PS 图像调整算法——自动色阶 (Auto Levels)

    PS 给出的定义: Enhance Per Channel Contrast:Maximizes the tonal range in each channel to produce a more d ...

  9. unity xml序列化与反序列化 多平台

    换平台确实是一个头疼的问题,本来在pc用.net的json处理数据很是顺手的,但是发布web版本后,发现他不支持.后面找了好几个开源json都不能很好的支持web,或者不能支持List等.于是我就想着 ...

  10. win32多线程学习笔记

    <多核程序设计技术> 第五章--线程api,一个使用windows事件的线程应用程序,vs2008下编译调试通过. // 线程通信机制.cpp : 定义控制台应用程序的入口点. // #i ...