1. 程式人生 > >java 連帶操作(兩張表關聯,一張表插入一條新資料,另外一張表也跟著插入一條新資料)

java 連帶操作(兩張表關聯,一張表插入一條新資料,另外一張表也跟著插入一條新資料)

以角色許可權模組中增加功能為例子:

a) 概念:

 連帶操作:首先先在Role表中插入一條資料,接著拿到rid,往Role-Acl表中插入一條資料

b)資料庫設計:

Role表:


Role-Acl表:

c) 程式碼實現:

RoleMap:

/**
 *
 * @Description: 新增角色
 */
@Insert("insert into sys_role(rolename,creator,createtime,remark) VALUES(#{rolename},1,NOW(),#{remark})")
@Options(useGeneratedKeys = true, keyProperty = "rid"
,keyColumn="rid") int  addRole(SysRole sysRole);

RoleAclMap:

/**
 *
 * @Description: 插入到角色許可權表
 */
@Insert("INSERT into sys_role_acl(rid,aid) VALUES(#{rid},#{aid})")
int  addRoleAcl(SysRoleAcl sysRoleAcl);

RoleService:

/**
 * @Description: 插入到角色許可權表
 */
public Map addRole(SysRole sysRole, String[] aids) {
    
int addRole = m_RoleMap.addRole(sysRole);     Integer rid = sysRole.getRid();     // SysRoleAcl     SysRoleAcl sysRoleAcl = new SysRoleAcl();     sysRoleAcl.setAid(Arrays.toString(aids));     sysRoleAcl.setRid(rid);     m_RoleAclMap.addRoleAcl(sysRoleAcl);     // 呼叫IRoleAclMap方法     Map tResultMap = new
HashMap();     tResultMap.put("status", "fail");     if (addRole <= 0) {         tResultMap.put("Msg", "新增失敗");         return tResultMap;     }     tResultMap.put("status", "success");     return tResultMap; }