Mybatis 連帶操作(注解方式)(兩張表關聯(lián),一張表插入一條新數(shù)據(jù),另外一張表也跟著插入一條新數(shù)據(jù))

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

  1. 概念:

連帶操作:首先先在Role表中插入一條數(shù)據(jù),接著拿到rid,往Role-Acl表中插入一條數(shù)據(jù)

  1. 數(shù)據(jù)庫設計:
    Role表:


    Role表

    Role-Acl表:


    Role-Acl表
  2. 代碼實現(xiàn):

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);
    // 調(diào)用IRoleAclMap方法
    Map tResultMap = new HashMap();
    tResultMap.put("status", "fail");
    if (addRole <= 0) {
        tResultMap.put("Msg", "添加失敗");
        return tResultMap;
    }
    tResultMap.put("status", "success");
    return tResultMap;
}
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容