分页与高级查询

来源:互联网 发布:python自动化运维 pdf 编辑:程序博客网 时间:2024/05/22 10:45

JSP页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">    <title>My JSP 'index.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--    <link rel="stylesheet" type="text/css" href="styles.css">    -->    <script type="text/javascript">        function aa(pageNum){//          alert(pageNum);            var form1=document.getElementById("form1");            form1.action="EmpAction.do?flag=findAll&pageNum="+pageNum;            form1.submit();        }    </script>  </head>  <body>    欢迎:${ee.empName }    <a href="EmpAction.do?flag=findAll">查询全部</a>    <c:if test="${list!=null }">        <form action="EmpAction.do?flag=findAll" method="post" id="form1">            姓名:<input type="text" name="empName" value="${e.empName }">            部门:<input type="text" name="deptName" value="${e.deptName }">            生日:<input type="text" name="birthday" value="${e.birthday }">            <input type="submit" value=" submit ">        </form>        <table>            <tr>                <td>id</td>                <td>姓名</td>                <td>部门</td>                <td>生日</td>            </tr>            <c:forEach items="${list }" var="e">            <tr>                <td>${e.empId }</td>                <td>${e.empName }</td>                <td>${e.deptId }</td>                <td>${e.dept.deptName }</td>                <td>${e.birthday }</td>            </tr>            </c:forEach>            <tr>                <td>共${p.totalSize }条共${p.totalPage }页 第${p.pageNum }页                <a href="javascript:;" onclick="aa(${p.pageNum-1 })">上一页</a>                <a href="javascript:;" onclick="aa(${p.pageNum+1 })">下一页</a>                </td>            </tr>        </table>    </c:if>  </body></html>

Service层

import java.util.List;public interface EmpService {    public Emp findEmpById(int id);    public List<Emp> findAll(Emp e);    public Emp login(Emp e);    public int count(Emp e);}

bean层

import java.util.Date;public class Emp {    private int empId;    private String empName;    private int sex;    private int age;    private int deptId;    private Date birthday;    private String username;    private String password;    private Dept dept;    private String deptName;    private int begin;    private int end;    public String getDeptName() {        return deptName;    }    public void setDeptName(String deptName) {        this.deptName = deptName;    }    public int getBegin() {        return begin;    }    public void setBegin(int begin) {        this.begin = begin;    }    public int getEnd() {        return end;    }    public void setEnd(int end) {        this.end = end;    }    public Dept getDept() {        return dept;    }    public void setDept(Dept dept) {        this.dept = dept;    }    public Date getBirthday() {        return birthday;    }    public void setBirthday(Date birthday) {        this.birthday = birthday;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public int getEmpId() {        return empId;    }    public void setEmpId(int empId) {        this.empId = empId;    }    public String getEmpName() {        return empName;    }    public void setEmpName(String empName) {        this.empName = empName;    }    public int getSex() {        return sex;    }    public void setSex(int sex) {        this.sex = sex;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public int getDeptId() {        return deptId;    }    public void setDeptId(int deptId) {        this.deptId = deptId;    }}
public class Page {    private int pageNum;    private int pageSize;    private long totalSize;    private int totalPage;    public int getBegin(){        return (pageNum-1)*pageSize+1;    }    public int getEnd(){        return pageNum*pageSize;    }    public int getPageNum() {        return pageNum;    }    public void setPageNum(int pageNum) {        this.pageNum = pageNum;    }    public int getPageSize() {        return pageSize;    }    public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }    public long getTotalSize() {        return totalSize;    }    public void setTotalSize(long totalSize) {        this.totalSize = totalSize;    }    public int getTotalPage() {        return totalPage;    }    public void setTotalPage(int totalPage) {        this.totalPage = totalPage;    }    public Page(int pageNum, int pageSize, int totalSize) {        this.pageSize = pageSize;        this.totalSize = totalSize;        this.totalPage = totalSize%pageSize==0?totalSize/pageSize:totalSize/pageSize+1;        if(pageNum<=0){            this.pageNum=1;        }else if(pageNum>totalPage&&totalPage!=0){            this.pageNum=totalPage;        }else{            this.pageNum=pageNum;        }    }}
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.dao.EmpDao">    <resultMap type="emp" id="rm">        <id property="empId" column="emp_id"/>        <result property="empName" column="emp_name"/>        <result property="deptId" column="dept_id"/>        <result property="sex" column="sex"/>        <result property="age" column="age"/>        <result property="username" column="username"/>        <result property="password" column="password"/>        <result property="birthday" column="birthday"/>        <association property="dept" javaType="Dept">            <id property="deptId" column="dept_id"/>            <result property="deptName" column="dept_name"/>        </association>    </resultMap>    <select id="findEmpById" parameterType="int" resultMap="rm">        select * from emp_tb where emp_id=#{id}    </select>    <select id="findAll" parameterType="emp" resultMap="rm">        select * from(    select ee.*,rownum rn from(    select e.emp_id,e.emp_name,e.birthday,d.dept_id,d.dept_name     from emp_tb e inner join dept_tb d  on e.dept_id=d.dept_id     <where>        <if test="empName!=null and empName!=''">            and e.emp_name like '%'||#{empName}||'%'        </if>        <if test="deptName!=null and deptName!=''">            and d.dept_name like '%'||#{deptName}||'%'        </if>        <if test="birthday!=null">            and e.birthday>#{birthday}        </if>     </where>     ) ee )    eee where eee.rn between #{begin} and #{end}    </select>    <select id="login" parameterType="emp" resultMap="rm">        select * from emp_tb where username=#{username} and password=#{password}    </select>    <select id="count" resultType="int">        select count(*) from emp_tb e inner join dept_tb d on e.dept_id=d.dept_id    <where>        <if test="empName!=null and empName!=''">            and e.emp_name like '%'||#{empName}||'%'        </if>        <if test="deptName!=null and deptName!=''">            and d.dept_name like '%'||#{deptName}||'%'        </if>        <if test="birthday!=null">            and e.birthday>#{birthday}        </if>     </where>    </select></mapper>

Action层

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.stereotype.Component;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.SessionAttributes;@Component@SessionAttributes({"ee"})@RequestMapping("EmpAction.do")public class EmpAction {    @Autowired    @Qualifier("empServiceImpl")    private EmpService es;    public EmpService getEs() {        return es;    }    public void setEs(EmpService es) {        this.es = es;    }    @RequestMapping(params="flag=login")    public String login(@ModelAttribute Emp e,ModelMap map){        System.out.println(e.getUsername());        Emp ee=es.login(e);        String str=null;        if(ee!=null){            map.put("ee", ee);            str="admin/index.jsp";        }else{            str="login.jsp";        }        return str;    }    @RequestMapping(params="flag=findAll")    public String findAll(ModelMap map,HttpServletRequest request){        String pageNum1=request.getParameter("pageNum");        int pageNum=0;        if(pageNum1!=null&&pageNum1!=""){            pageNum=Integer.parseInt(pageNum1);        }        String empName=request.getParameter("empName");        String deptName=request.getParameter("deptName");        String birthday=request.getParameter("birthday");        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");        Date birth=null;        if(birthday!=null&&birthday!=""){            try {                birth=sdf.parse(birthday);            } catch (ParseException e1) {                // TODO Auto-generated catch block                e1.printStackTrace();            }        }        Emp e=new Emp();        e.setEmpName(empName);        e.setDeptName(deptName);        e.setBirthday(birth);        int totalSize=es.count(e);        Page p=new Page(pageNum, 3, totalSize);        e.setBegin(p.getBegin());        e.setEnd(p.getEnd());        List<Emp> list=es.findAll(e);        map.put("e", e);        map.put("p", p);        map.put("list", list);        return "admin/index.jsp";    }}