首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ssm整合之五 分页以及按时间查询

ssm整合之五 分页以及按时间查询

作者头像
张哥编程
发布2024-12-17 11:10:17
发布2024-12-17 11:10:17
10700
代码可运行
举报
文章被收录于专栏:云计算linux云计算linux
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
public interface EmpDao { 
  /**
   * 获取雇员总数量
   * @return
   */
  public int searchAll(Map map);
  public List<Emp> search(Map map);
}

mapper映射文件

代码语言:javascript
代码运行次数:0
运行
复制
<select id="searchAll"  parameterType="java.util.Map" resultType="int">
        select  count(*) from emp  <where>
         <if test="minSal>0">
              and sal > #{minSal}
          </if>
        </where>  
    </select>
    <select id="search" parameterType="java.util.Map" resultType="com.entity.Emp">
        select  empno,ename,sal from
         (select rownum r ,e.* from emp e
         <if test="minSal>0">
              where  e.sal > #{minSal}
          </if>
         ) a where a.r > #{start}
          and a.r < #{end} 

    </select>

业务层接口

代码语言:javascript
代码运行次数:0
运行
复制
//业务层的接口
public interface IEmpService {

  //分页;
  public PageData getList(Map map);
}

业务层接口的实现类

代码语言:javascript
代码运行次数:0
运行
复制
@Service("service")
public class EmpService implements IEmpService {
  //注入,byName类型;
  @Resource
  private EmpDao empDao;//数据层;


  public PageData getList(Map map) {
    PageData pageData=new PageData(empDao.searchAll(map),empDao.search(map));
    return pageData;
  }


}

控制器代码

代码语言:javascript
代码运行次数:0
运行
复制
@Controller
@RequestMapping("/emp") //窄化处理
public class EmpController {
  //自动注入
  @Resource
  private IEmpService service;

  @RequestMapping("/list")
  public String getList(Model model){//Model:模型,只存数据
    List<Emp>list=service.getList();
    model.addAttribute("size",list.size());
    model.addAttribute("list",list);//存放集合
    return "test2";//返回到list页面
  }
  //分页
  @RequestMapping("/list2")
  public String list(Model model,Integer pageNo,Integer minSal,HttpServletRequest request){
    System.out.println("URI地址:"+request.getRequestURI());
//    Enumeration  pNames=request.getParameterNames();  
//     while(pNames.hasMoreElements()){  
//      String  name=(String)pNames.nextElement();
//      System.out.println("name:"+name+"="+request.getParameter(name));
//     }
    int pageSize=3;
    if(pageNo==null){
      pageNo=1;
    }
    Map map =new HashMap();
    map.put("start", (pageNo-1)*pageSize);
    map.put("end", pageNo*pageSize+1);
    map.put("minSal",minSal);
    PageData pageData = service.getList(map);
    int count = pageData.getCount();//总数量
    String pageString = new PageUtil(pageSize, pageNo, count, request).getPageString();
    model.addAttribute("list", pageData.getList());
    model.addAttribute("pageString", pageString);
    return "list";
  }
代码语言:javascript
代码运行次数:0
运行
复制
}

前端页面list.jsp页面

代码语言:javascript
代码运行次数:0
运行
复制
<form method="post" action="emp/list2">
        最低工资:<input type="text" name="minSal" value="${param.minSal}"/>
      最高工资:<input type="text" name="maxSal">
        <input type="submit" value="查询"/>
    </form>
    <table border="1" align="center" width="100%">
    <tr align="center">
        <td>工号</td><td>姓名</td><td>工资</td><td>操作</td>
    </tr>
    <c:forEach items="${list }" var="emp">
        <tr>
            <td>${emp.empno }</td>
            <td>${emp.ename }</td>
            <td>${emp.sal }</td>
            <td><!--view->controller->view -->
                <a href='emp/toAddEmp'>增加</a>
                <a href='emp/getEmp/${emp.empno}'>编辑</a>
                <a href='emp/${emp.empno}/deleteEmp'>删除</a>
                <a href='emp/deleteEmp2?empno=${emp.empno}'>删除2</a>
            </td>
        </tr>
    </c:forEach>
    <tr align="center"><td colspan="4">${pageString}</td></tr>
    </table>

正常带查询的坟茔应该是如下状态

ssm整合之五 分页以及按时间查询_分页
ssm整合之五 分页以及按时间查询_分页

按时间查询,在入职日期输入一个时间,点击datetimebox,选择相应的时间

ssm整合之五 分页以及按时间查询_分页_02
ssm整合之五 分页以及按时间查询_分页_02
ssm整合之五 分页以及按时间查询_分页_03
ssm整合之五 分页以及按时间查询_分页_03

mapper文件代码:

<select id="getpage" parameterType="java.util.Map" resultType="net.bean.emp">

select * from (select rownum r ,e.empno,e.ename,e.age,e.sex,e.email,e.ephone,p.pname,dt.dname,d.dromroom,e.eaddress,e.hiredate,e.leavedate from T_emp e left join

T_drom d on e.dromno=d.dromno left join T_dept dt on e.deptno=dt.deptno left join T_position p on e.pno=p.pno

<where>

<if test="empno>0">

and e.empno=#{empno}

</if>

<if test="ename!=null">

and e.ename like '%${ename}%'

</if>

<if test="hiredate!=null">

and e.hiredate=to_date('${hiredate}','yyyy-mm-dd')

</if>

</where>

)a

where a.r &gt; #{start}

and a.r &lt; #{end}

</select>

控制器代码:

代码语言:javascript
代码运行次数:0
运行
复制
@RequestMapping("/getemps")
  public String list(Model model,Integer pageNo,HttpServletRequest request,Integer empno,String ename,Date hiredate){
    System.out.println("URI地址:"+request.getRequestURI());
    int pageSize=5;//每页条数
    if(pageNo==null){
      pageNo=1;
    }
    Map map =new HashMap();
    map.put("start", (pageNo-1)*pageSize);
    map.put("end", pageNo*pageSize+1);
    map.put("empno",empno);
    map.put("ename", ename);
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    if(hiredate!=null){
      String s=sdf.format(hiredate);
      System.out.println(s);
      map.put("hiredate", s);
    }
    PageData pageData =empservice.getList(map);
    int count = pageData.getCount();//总数量
    String pageString = new PageUtil(pageSize, pageNo, count, request).getPageString();
    model.addAttribute("emps", pageData.getList());
    model.addAttribute("pageString", pageString);
    return "emp/getemps";
  }

注意实体类型是java.sql.date,可以直接查询。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档