ssm框架实现用户批量添加

(7.6-7.7

然后就是完善之前做出来的项目!
要先导入一个添加用户的新页面 user-role-add.jsp

首先改写UserController的@RequestMapping("/login.do")

    @RequestMapping("/login.do")
    public ModelAndView login(User user, HttpSession session){
        int id = userService.login(user.getUsername(), user.getPassword());
        ModelAndView modelAndView=new ModelAndView();
        if(id != -1){
            List<Integer> roleIds = roleService.findRoleId(id);
            session.setAttribute("roleIds",roleIds);
            session.setAttribute("user",user);
            modelAndView.setViewName("main");
        }else {
            modelAndView.setViewName("../failer");
        }
       return modelAndView;
    }

然后在bean工厂里新建Role类

public class Role {
    private int id;
    private String roleName;
    private String roleEsc;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public String getRoleEsc() {
        return roleEsc;
    }

    public void setRoleEsc(String roleEsc) {
        this.roleEsc = roleEsc;
    }

    @Override
    public String toString() {
        return "Role{" +
                "id=" + id +
                ", roleName='" + roleName + '\'' +
                ", roleEsc='" + roleEsc + '\'' +
                '}';
    }
}

改写接口IUserService和它的实现类

public interface IUserService {
    int login(String username,String password);

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

    void deleteById(int id);

    void add(User user);

    User selectUserById(int id);

    void update(User user);

    void deleteAll(List<Integer> ids);
}
@Service
public class UserService implements IUserService {

    @Autowired
    private UserDao userDao;

    @Override
    public int login(String username, String password) {
        User user = userDao.findUserByUserName(username);
        if (user!=null && user.getPassword().equals(password)){
            return user.getId();
        }
        return -1;
    }

    @Override
    public PageInfo<User> findAll(int currentPage,String username) {
        PageInfo<User> pageInfo=new PageInfo<>();
        pageInfo.setSize(5);

        int tc=userDao.getTotalCount(username);
        pageInfo.setTotalCount(tc);
        int tp=(int)Math.ceil(tc/5.0);
        pageInfo.setTotalPage(tp);
        if(currentPage<1){
            pageInfo.setCurrentPage(1);
        }else if(currentPage>tp && tp != 0){
            pageInfo.setCurrentPage(tp);
        }else {
            pageInfo.setCurrentPage(currentPage);
        }

        System.out.println(pageInfo.getCurrentPage());
        //0,5,10
        int start=(pageInfo.getCurrentPage()-1)*5;
        List<User> userList = userDao.findAll(start,username);
        pageInfo.setList(userList);
        return pageInfo;
    }

    /*@Override
    public List<User> findAll() {
        return userDao.findAll();
    }*/

    @Override
    public void deleteById(int id) {
        userDao.deleteById(id);
    }

    @Override
    public void add(User user) {
        userDao.add(user);
    }

    @Override
    public User selectUserById(int id) {
        return userDao.selectById(id);
    }

    @Override
    public void update(User user) {
        userDao.update(user);
    }

    @Override
    public void deleteAll(List<Integer> ids) {
        userDao.deleteAll(ids);
    }
}

新建Roledao

public interface RoleDao {
    List<Integer> findRoleIdByUserId(int userId);

    List<Role> findRoleNotInUserId(int id);
}

新建RoleMapper

<?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.RoleDao" >
    <select id="findRoleIdByUserId" parameterType="int" resultType="int">
        select roleId from user_role where userId=#{userId}
    </select>

新建IRoleService

public interface IRoleService {
    List<Integer> findRoleId(int userId);

    List<Role> findRoleNotInUserId(int id);
}

别忘记还有它的实现类

@Service
public class RoleService implements IRoleService {
    @Autowired
    private RoleDao roleDao;

    @Override
    public List<Integer> findRoleId(int userId) {
        return roleDao.findRoleIdByUserId(userId);
    }
}

在UserController里自动注入roleService

 @Autowired
    private IRoleService roleService;

改写前端
改写user-list.jsp

<a href="${pageContext.request.contextPath}/user/toAddRole.do?id=${user.id}" class="btn bg-olive btn-xs">添加角色</a>
//改写herf已跳到正确的路径

然后又是后端ψ(`∇´)ψ
添加 @RequestMapping(“toAddRole.do”)

    @RequestMapping("toAddRole.do")
    public ModelAndView toAddRole(int id){
        List<Role> roleList = roleService.findRoleNotInUserId(id);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("roles", roleList);
        modelAndView.setViewName("user-role-add");
        return modelAndView;
    }

在RoleService里重写findRoleNotInUserId

@Override
    public List<Role> findRoleNotInUserId(int id) {
        return roleDao.findRoleNotInUserId(id);
    }

然后在RoleMapper里面写上对应的sql语句

<select id="findRoleNotInUserId" parameterType="int" resultType="role">
        SELECT * FROM tb_role WHERE  id NOT IN (SELECT roleId FROM user_role WHERE userId=#{id})
    </select>
</mapper>

然后就没有然后了
结束了

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值