SSM项目实现模糊搜索、分页、删除列表数据
2020-07-24 15:15
357 查看
一、前提准备:
基本环境的配置:
https://blog.csdn.net/qq_43923042/article/details/107549680
主要用到两个bean类:User类和PageInfo类,User类是主要传递的信息,PageInfo则是将User进一步分页包装
二、编写UserDao接口
package com.zhongruan.dao; import com.zhongruan.beans.User; import org.apache.ibatis.annotations.Param; import java.util.List; public interface UserDao { User findByUserName(String name); List<User> findAll(@Param("start") int start,@Param("username") String username); // List<User> findAll(); void add(User user); void deleteById(int id); User selectById(int id); void update(User user); int getTotalCount(@Param("username") String username); void deleteAll(@Param("ids")List<Integer> ids); }
三、编写resource/mapper/UserMapper.xml配置文件
主要是写各种sql语句,当使用到DAO层接口时直接调用语句,这一部分比较值得一提的是SQL语句中 LIKE的灵活使用可以实现模糊搜索
<?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.zhongruan.dao.UserDao" > <select id="findByUserName" parameterType="String" resultType="user"> select id,username,password from xiaolaji where username = #{username} </select> <select id="findAll" resultType="user"> select * from xiaolaji <if test="username!=null and username!=''"> where username like concat("%",#{username},"%") </if> limit #{start},5 </select> <insert id="add" parameterType="user"> insert into xiaolaji (username,password) values(#{username},#{password}) </insert> <delete id="deleteById" parameterType="int"> delete from xiaolaji where id=#{id} </delete> <select id="selectById" parameterType="int" resultType="user"> select * from xiaolaji where id= #{id} </select> <update id="update" parameterType="user"> update xiaolaji set username=#{username},password=#{password} where id=#{id} </update> <select id="getTotalCount" resultType="int"> select count(*) from xiaolaji <if test="username!=null and username!= ''"> where username like concat("%",#{username},"%") </if> </select> <delete id="deleteAll" parameterType="list"> delete from xiaolaji where id in <foreach collection="ids" item="id" open="(" close=")" separator=","> #{id} </foreach> </delete> </mapper>
四、Service层的构建
先构建一个service接口,声明需要用的各种函数,再写它的实现类,此处只写实现类:
package com.zhongruan.service.Impl; import com.zhongruan.beans.PageInfo; import com.zhongruan.beans.User; import com.zhongruan.dao.*; import com.zhongruan.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public int login(String username, String password) { User user=userDao.findByUserName(username); if (user!=null&&user.getPassword().equals(password)) return user.getId(); return -1; } @Override public PageInfo<User> findAll(int curruntPage, String username) { PageInfo<User> pageInfo=new PageInfo<>(); pageInfo.setSize(5); int tc=userDao.getTotalCount(username); pageInfo.setTotalCount(tc); //tp总页数 int tp=tc/5+1; pageInfo.setTotalPage(tp); if (curruntPage<1){ pageInfo.setCurruntPage(1); }else if (curruntPage>tp){ pageInfo.setCurruntPage(tp); }else { pageInfo.setCurruntPage(curruntPage); } int start = (pageInfo.getCurruntPage()-1)*5; List<User> userList=userDao.findAll(start,username); pageInfo.setList(userList); return pageInfo; } @Override public void add(User user) { userDao.add(user); } @Override public void deleteById(int id) { userDao.deleteById(id); } @Override public User selectUserById(int id) { return userDao.selectById(id); } @Override public void update(User user) { System.out.println(user.toString()); userDao.update(user); } @Override public void deleteAll(List<Integer> ids) { userDao.deleteAll(ids); } }
五、写Controller接口
package com.zhongruan.controller; import com.zhongruan.beans.PageInfo; import com.zhongruan.beans.Role; import com.zhongruan.beans.User; import com.zhongruan.service.RoleService; import com.zhongruan.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpSession; import java.util.ArrayList; import java.util.Collection; import java.util.List; @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @Autowired private RoleService roleService; @RequestMapping("/login.do") public ModelAndView login(User user,HttpSession session){ int id= userService.login(user.getUsername(),user.getPassword()); ModelAndView mv=new ModelAndView(); if (id!=-1){ List<Integer> roleIds = roleService.findRoleId(id); session.setAttribute("roleIds",roleIds); session.setAttribute("user",user); mv.setViewName("main"); } else mv.setViewName("../failer"); return mv; } @RequestMapping("/findAll.do") public ModelAndView findAll(@RequestParam(defaultValue = "1")int curruntPage, 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(curruntPage,username); ModelAndView mv=new ModelAndView(); mv.addObject("pageinfo",pageInfo); mv.setViewName("user-list"); return mv; } @RequestMapping("/add.do") public String add(User user){ userService.add(user); return "redirect:findAll.do"; } @RequestMapping("/deleteById.do") public String delete(int id){ userService.deleteById(id); return "redirect:findAll.do"; } @RequestMapping("/toUpdate.do") public ModelAndView toUpdate(int id){ User user = userService.selectUserById(id); ModelAndView mv=new ModelAndView(); mv.setViewName("user-update"); mv.addObject("user",user); return mv; } @RequestMapping("/update.do") public String Update(User user){ userService.update(user); return "redirect:findAll.do"; } @RequestMapping("/deleteAll.do") public String deleteAll(String userList){ System.out.println("deleteAll:"+userList); String[] str= userList.split(","); List<Integer> ids=new ArrayList<>(); for (String i:str) ids.add(Integer.parseInt(i)); userService.deleteAll(ids); return "redirect:findAll.do"; }
由于界面使用的是jsp编写,有些填入的数据要跟jsp中的界面互相配合才行。
jsp在此不多展示,成果:
相关文章推荐
- 【ssm个人博客项目实战05】easy ui datagrid实现数据的分页显示
- SSM框架 用ajax实现模糊查询分页和列表
- 【ssm个人博客项目实战08】博客的分页显示以及模糊查询,删除。
- Asp.Net Ajax+WCF Service+ADO.NET Entity Framework实现数据列表,数据筛选,分页,排序,删除
- 项目经验之:利用Jquery+HTML静态模版实现数据的展示及无刷新增加,修改,删除,分页操作!!!
- SSM项目实践——列表分页功能实现
- vue中分页组件和时间选择器组件,实现时间搜索的时候,列表的数据和分页一起刷新
- [个人笔记]:在SSM中实现分页展示数据功能与模糊查询功能
- 实现ssm加layui数据表格展示数据,搜索,编辑,分页(后台用pagehelper),排序,查看图片 ,点击查看大图(弹出层)
- Asp.Net Ajax+WCF Service+ADO.NET Entity Framework实现数据列表,数据筛选,分页,排序,删除
- 【问题&解决办法】 SSM框架下实现了分页查询后无法进行模糊查询(后台有数据,页面不显示)
- EasyUI combogrid 实现分页和数据模糊搜索
- 【ssm个人博客项目实战05】easy ui datagrid实现数据的分页显示
- ssm框架实现模糊查找,查询结果分页,批量删除(合集
- SSM项目——列表删除功能实现
- Repeater\DataList\GridView实现分页,数据编辑与删除
- ssm框架查询数据并实现分页功能示例
- 根据ajax发送数据,从servelt中读取xml数据并显示,实现查询、删除和分页
- EasyUi中的Combogrid 实现分页和动态搜索远程数据
- jquery+json实现数据列表分页示例代码