java 账户管理器_JavaEE权限管理系统的搭建(七)--------管理用户的增删改

本文详细介绍了在JavaEE环境下搭建权限管理系统时,如何实现用户管理的增删改功能。通过AJAX进行后台交互,添加用户时需为用户分配至少一个角色,利用JS进行表单验证,控制器进行业务逻辑处理,包括密码加密、角色分配和数据库操作。删除用户和修改用户同样涉及角色关系的处理,确保数据的一致性。
摘要由CSDN通过智能技术生成

本小结讲解管理用户的增删改查实现,

首先是添加用户,如下图所示,可以看到添加用户的同时也要给用户分配角色,至少给用户分配一个或者是多个角色

d61af51f3763d6713eea6a3ca6156d1c.png

页面js部分:

$.ajax({//几个参数需要注意一下

type: "POST",//方法类型

dataType: "json",//预期服务器返回的数据类型

url: "/admin/admin-user-add.action" ,//url

data: $('#form1').serialize(),

success: function (data) {

//console.log(data.result);//打印服务端返回的数据(调试用)

if (data.result == 'SUCCESS'||data.result == 200) {

$("loginName").val('');

layer.msg("添加成功",{icon:1,time:2000});

}else{

layer.msg("添加失败:"+data.result.toString(),{icon:5,time:2000});

}

},

error : function() {

layer.msg(data.result.toString());

}

});

adminController

/**

* 添加管理员

* @param adminUser pojo对象

* @param errors 验证错误对象

* @return*/@AccessPermissionsInfo("admin:add")

@RequestMapping(value= "/admin-user-add.action",method =RequestMethod.POST)

@ResponseBodypublic MapregAdminUser(@Valid AdminUser adminUser,

HttpServletRequest request,

Errors errors,Model model){

Map resultMap = new HashMap();//如果有错误return当前注册页面

if(errors.hasErrors())

{

resultMap.put("result","参数不合法");

}

List roleList =roleService.findAllRoleList();

model.addAttribute("roleList",roleList);

logger.info("roleIds:"+request.getParameterValues("roleIds"));if(request.getParameterValues("roleIds")==null

||request.getParameterValues("roleIds").length<=0){

resultMap.put("result","请给用户分配至少一个角色");

}else{

String[] roleIds= request.getParameterValues("roleIds");//logger.info("regAdminUser方法被调用:"+adminUser.toString());//先查询数据库是否存在该用户,如果不存在就执行注册用户

AdminUser adminUser1 =adminUserService.findAdminUserByLoginName(adminUser.getLoginName().toString());if(adminUser1!=null){

resultMap.put("result","用户名已存在");

}else{//密码加密

String encryptPassword =

newPasswordEncryption().encryption(adminUser.getPassword(),

adminUser.getLoginName().toString());

adminUser.setPassword(encryptPassword);int count =adminUserService.addAdminUser(adminUser,roleIds);if (count > 0) {

resultMap.put("result","SUCCESS");

}

}

}returnresultMap;

}

看一下adminUserService.addAdminUser(adminUser,roleIds);方法:

adminUser:用户信息

roleIds:角色编号数组

admiUserServiceImpl部分:

/**

* 添加管理用户

*

* @param adminUser 管理用户信息

* @param roleIds 管理用户角色组

* @return*/@Overridepublic intaddAdminUser(AdminUser adminUser, String[] roleIds) {//先增加用户

int successCount =adminUserDao.addAdminUser(adminUser);//获取到新增用户的ID

int userId =Integer.parseInt(adminUser.getId().toString());//然后循环遍历角色数组增加用户角色关系

for(String roleId :roleIds)

{

successCount+=roleDao.addUserRoleRelations(userId,roleId);

}returnsuccessCount;

}

持久层部分:

AdminUserMapper.xml

SELECTif(MAX(id)=NULL,1,MAX(id)+1) FROM t_admin

INSERT INTO t_admin

id,

LoginName,

password,

#{id,jdbcType=BIGINT},

#{LoginName,jdbcType=VARCHAR},

#{password,jdbcType=VARCHAR},

RoleMapper.xml

SELECTif(MAX(adminRoleId)=NULL,1,MAX(adminRoleId)+1) FROM t_admin_roleINSERT INTO t_admin_role(adminRoleId,adminId,roleId)

VALUES (#{adminRoleId},#{userId},#{roleId})

删除用户

adminUserController

/**

* 删除管理用户

* @param request

* @return*/@AccessPermissionsInfo("admin:delete")

@RequestMapping(value= "/admin-user-delete.action",method =RequestMethod.POST)

@ResponseBodypublic MapdeleteAdminUser(HttpServletRequest request)

{

String str_ids= request.getParameter("ids");

str_ids= str_ids.replace("/","");//替换掉/

String[] ids = str_ids.split(","); //用,分割//logger.info(Arrays.toString(ids));

Map resultMap = new HashMap();if(ids==null||ids.length<=0)

{

resultMap.put("result","参数异常");

}else{

AdminUser adminUser= (AdminUser)request.getSession().getAttribute("adminUser");if(adminUser!=null){int count =adminUserService.deleteAdminUserByIds(ids);if(count>0){

resultMap.put("result","SUCCESS");

}else{

resultMap.put("result","操作失败");

}

}else{

resultMap.put("result","登录超时,请重新登录");

}

}returnresultMap;

}

AdminUserServiceImpl

/**

* 批量删除管理用户

*

* @param ids 管理用户的编号组

* @return*/@Overridepublic intdeleteAdminUserByIds(String[] ids) {//先根据用户的编号删除该用户关联的角色信息

int successCount =roleDao.deleteAdminUserRoleRelation(ids);//然后再删除用户

successCount+=adminUserDao.deleteAdminUserByIds(ids);returnsuccessCount;

}

持久层

DELETE FROM t_admin_role

WHERE adminIdin

#{item}

DELETE FROM t_admin

WHERE idin

#{item}

修改用户:

76323d3f70f16a6bb9986a49c6be508b.png

AdminUserController

/**

* 编辑管理员

* @param request

* @param model

* @return*/@AccessPermissionsInfo("admin:edit")

@RequestMapping(value= "/admin-user-edit.action",method =RequestMethod.POST)

@ResponseBodypublic MapeditAdminUser(HttpServletRequest request,Model model){

Map resultMap = new HashMap();

List roleList =roleService.findAllRoleList();

model.addAttribute("roleList",roleList);

logger.info("roleIds:"+request.getParameterValues("roleIds"));if(request.getParameter("id")==null||request.getParameter("loginName")==null){

resultMap.put("result","用户参数不合法");

}else if(request.getParameterValues("roleIds")==null

||request.getParameterValues("roleIds").length<=0){

resultMap.put("result","请给用户分配至少一个角色");

}else{

String[] roleIds= request.getParameterValues("roleIds");

String id= request.getParameter("id").toString();

String loginName= request.getParameter("loginName").toString();//先查询数据库是否存在该用户

AdminUser adminUser1 =adminUserService.findAdminUserByLoginName(loginName);//如果存在该用户并且编号相等,就执行更新操作

if(adminUser1!=null&&adminUser1.getId().toString().equals(id)){int count =adminUserService.editAdminUser(adminUser1,roleIds);if (count > 0) {

resultMap.put("result","SUCCESS");

}

}else{

resultMap.put("result","没有这个用户");

}

}returnresultMap;

}

AdminUserServiceImpl

/**

* 编辑管理员用户信息

*

* @param adminUser 管理用户信息

* @param roleIds 角色组

* @return*/@Overridepublic inteditAdminUser(AdminUser adminUser, String[] roleIds) {//先删除用户关联的所有角色

int successCount =roleDao.deleteAdminUserRoleRelationById(adminUser.getId().toString());//然后循环遍历角色数组增加用户角色关系

for(String roleId :roleIds)

{

successCount+=roleDao.addUserRoleRelations(adminUser.getId(),roleId);

}returnsuccessCount;

}

持久层:

RoleMapper.xml

DELETE FROM t_admin_role

WHERE adminId=#{adminId}

SELECTif(MAX(adminRoleId)=NULL,1,MAX(adminRoleId)+1) FROM t_admin_roleINSERT INTO t_admin_role(adminRoleId,adminId,roleId)

VALUES (#{adminRoleId},#{userId},#{roleId})

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值