条件查询

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. javascript语法之String对象

    学习String类就是学习它的一些方法,主要用到方法全部罗列出来.如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition ...

  2. 第二篇、vlc-android之源码介绍

    注明 转载请注明出处:http://blog.csdn.net/cuiran/article/details/35987853 正文 继<第一篇.vlc-android之开篇介绍> htt ...

  3. (NO.00001)iOS游戏SpeedBoy Lite成形记(十八)

    现在需要实现具体的游戏逻辑大致如下: 玩家点击某条赛道选择一个选手,然后会弹出菜单窗口让玩家输入压赌的金额,如果输入的金额值非法,则在GameInterface下部的状态栏中显示提示,要求玩家重新输入 ...

  4. 集群通信组件tribes之集群的平行通信

    前面的集群成员维护服务为我们提供了集群内所有成员的地址端口等信息,可以通过MembershipService可以轻易从节点本地的成员列表获取集群所有的成员信息,有了这些成员信息后就可以使用可靠的TCP ...

  5. JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想

    JAVA之旅(三)--数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想 我们继续JAVA之旅 一.数组 1.概念 数组就是同一种类型数据的集合,就是一个容器 数组的好 ...

  6. [Ext.Net]动态生成控件(二)--js动态添加文本框

    转自:http://www.ext.net.cn/forum.php?mod=viewthread&tid=11931 点击一个按钮就出现一行控件,点击删除控件就可将一行控件删除,这是不是你一 ...

  7. 菜鸟玩云计算之廿一: saltstack之pillar

    菜鸟玩云计算之廿一: saltstack之pillar 参考: 点击打开链接 查看pillar数据: # salt '*' pillar.items pillar的默认根目录在:/srv/pillar ...

  8. 主流列式数据库评测:InfiniDB

    ).本文测试的InfiniDB版本是2010年12月20日发布的2.02版,下载文件名分别为InfiniDB64-2.0.2-2.exe 和InfiniDB64-ent-2.0.2-2.exe.安装文 ...

  9. 总结C语言在嵌入式开发中应用的知识点(文件数据的加密与解密)

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  10. android 线程那点事

    在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,即线程不可能无限制的产生,并且线程的创建和销毁都会有相应的开销,当系统中存在大量的线程时,系统会通过时间片轮转的方式调度每个 ...