7.23 ssm分页+模糊搜索

(1)ssm分页
①UserDao.java注册方法

int getTotalCount(@Param("username")String username);

②UserMapper.xml数据库语句

<select id="getTotalCount" resultType="int">
    select count(*)from tb_user
    <if test="username!=null and username!=''">
        where username like concat("%",#{username},"%")
    </if>
</select>

③user-list.jsp界面代码

<!-- /.box-footer-->
<div class = "box-tools pull-right">
   <ul class="pagination">
      <li><a href="/user/findAll.do" aria-lable="Previous">首页</a> </li>
      <li><a href="/user/findAll.do?currentPage=${pageInfo.currentPage-1}">上一页</a> </li>
      <c:forEach begin = "1" end = "${pageInfo.totalPage}" var="pageNum">
         <li><a href="/user/findAll.do?currentPage=${pageNum}">${pageNum}</a> </li>
      </c:forEach>
      <li><a href="/user/findAll.do?currentPage=${pageInfo.currentPage+1}">下一页</a> </li>
      <li><a href="/user/findAll.do?currentPage=${pageInfo.totalPage}" aria-lable="Next">尾页</a> </li>
   </ul>
</div>

在这里插入图片描述
在这里插入图片描述

(2)ssm模糊搜索
①UserDao.java注册方法

List<User> findAll(@Param("start") int start,@Param("username")String username);

②UserService.java注册方法

PageInfo<User> findAll(int currentPage,String username);

③UserServiceImpl.java实现方法

@Override
public PageInfo<User> findAll(int currentPage,String username){
    PageInfo<User> pageInfo = new PageInfo<>();
    pageInfo.setSize(5);
    //tc为查询数据的总行数
    int tc = userDao.getTotalCount(username);
    pageInfo.setTotalCount(tc);
    //tp为总页数
    int tp = (int)Math.ceil(tc/5.0);
    pageInfo.setTotalPage(tp);
    if(currentPage<1){
        pageInfo.setCurrentPage(1);
    }else if(currentPage>tp){
        pageInfo.setCurrentPage(tp);
    }else{
        pageInfo.setCurrentPage(currentPage);
    }
    //0,5,10,15...
    int start = (pageInfo.getCurrentPage()-1)*5;
    List<User> userList = userDao.findAll(start,username);
    pageInfo.setList(userList);
    return pageInfo;
}

④UserMapper.xml数据库语句

<select id="findAll" resultType="user">
    select * from tb_user
    <if test="username!=null and username!=''">
        where username like concat("%",#{username},"%")
    </if>
    limit #{start},5
</select>

⑤UserController.java实现方法

@RequestMapping("/findAll.do")
public ModelAndView findAll(@RequestParam(defaultValue = "1")int currentPage, String username,
                            @RequestParam(defaultValue = "0")int type, HttpSession session){
    if(type==1){
        session.setAttribute("searchName",username);
    }else{
        username=(String) session.getAttribute("searchName");
    }
    PageInfo<User> pageInfo = userService.findAll(currentPage, username);
    ModelAndView mv = new ModelAndView();
    mv.addObject("pageInfo",pageInfo);
    mv.setViewName("user-list");
    return mv;
}

模糊查询用户名包含a的所有用户信息
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值