mybatis 連帶操作(註解方式)(兩張表關聯,一張表插入一條新數據,另外一張表也跟着插入一條新數據)

以角色權限模塊中增加功能爲例子:

 

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;
}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章