实现对搜索功能的模糊查询以及用户列表的分页式管理
2020-07-23 15:41
513 查看
在昨天我们实现了对项目的搭建以及数据库的增删改查,还不太明白的可以看这篇博客https://blog.csdn.net/qq_43510659/article/details/107513607
今天我们主要来实现搜索功能的模糊查询以及用户列表的分页式管理。
bean包中新建一个PageInfo类将获取到的用户List储存到其中。
package com.zhongruan.bean; import java.util.List; public class PageInfo<T> { private List<T> list; private int size; private int totalPage; private int totalCount; private int currentPage; public List<T> getList(){ return list; } public void setList(List<T> list) { this.list = list; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCount = totalCount; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } }
UserDao类对findAll进行修改
// List<User> findAll(); List<User> findAll(@Param("start") int start,@Param("username")String username);
UserMapper类实现对数据库的模糊查询
<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> <select id="getTotalCount" resultType="int"> select count(*) from tb_user <if test="username!=null and username!='' "> where username like concat("%",#{username},"%") </if> </select>
UserService类对findAll进行修改
// List<User> findAll(); PageInfo<User> findAll(int currentPage,String username);
UserSeviceImpl对findAll方法实现
@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; }
UserController类
@RequestMapping("/findAll.do") public ModelAndView findAll(@RequestParam(defaultValue = "1")int currentPage, String username, @RequestParam(defaultValue = "0")int type, HttpSession seesion){ if(type==1){ seesion.setAttribute("searchName",username); }else{ username = (String) seesion.getAttribute("searchName"); } PageInfo<User> pageInfo = userService.findAll(currentPage,username); ModelAndView mv = new ModelAndView(); mv.addObject("pageInfo",pageInfo); mv.setViewName("user-list"); return mv; }
接下来就需要修改user-list.jsp文件,使用刚刚创建的PageInfo对象来传递数据。users.list来获取userinfo信息,在分页中我们需要使用使用users这一对象中的pageTotal与pageCurrent,来确定需要分页的位置。pageTotal在一个循环中显示可以储存下需要多少数据的页面,pages中总共有多少页面。
<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>
个人总结
今天我们主要就是实现了用户列表的分页以及模糊查询,在使用的时候我们需要totalPage、size、totalCount、currentPage来确定是哪一个页面与数据的数量,然后在mapper包中进行sql语句的修改,使用concat来进行模糊查询,在实现接口时对findAll方法进行重新编写,在controller中也一样,最后在jsp文件中使用封装好的PageInfo来传递数据供页面使用。
相关文章推荐
- SpringMVC(14):使用springmvc+spring+jdbc 优化订单管理系统的示例(多条件查询用户列表功能实现)
- UGUI实现模糊查询动态生成列表功能
- Solr部署,连接mysql,实现模糊查询功能,以及按照距离排序功能
- 下拉列列表+搜索模糊查询功能
- IDEA+Maven 结合SSM架构,实现用户的增删改查以及模糊查询
- SSM框架实现一个用户系统(登录,用户列表,分页,增删改查,用户角色管理功能)
- 用Criteria进行模糊查询实现简单的搜索功能
- 利用videoView创建播放器,实现展示视频列表和搜索sd卡功能 以及android6.0的动态授权等功能
- httpd-2.2及httpd-2.4版本实现对文件和用户的权限管理以及网页的https的功能
- Qt实现输入框,组合框提示,模糊查询,搜索关键字下拉提示功能
- 图书管理系统模块,通过模糊查询实现查找图书的功能
- js、jquery实现列表模糊搜索功能过程解析
- SpringMVC(16):使用springmvc+spring+jdbc 优化订单管理系统的示例(多条件查询供应商列表功能实现)
- 使用JavaWeb实现图书管理系统的增删改查,以及数据的分页,跳转,查询,用户登录......
- JS实现带导航城市列表以及输入搜索功能
- jQuery 异步模糊查询 实现下拉搜索功能
- 实习第六天——SSM的理解以及用户管理系统的登陆功能实现
- js、jquery实现列表模糊搜索功能
- php提取记录列表以及搜索功能的实现
- mall搜索功能改进(10/16店铺和后台全部有搜索的地方实现模糊查询)