多对多关系的crud操作

一.逻辑

1.确定俩表之间的关系

一个用户可以有多个角色。

一个角色可以有多个用户。

所以,用户和角色之间是多对多关系。

2.在数据库实现俩表之间的关系建立

在数据库多对多关系需要中间表。

中间表只能出现用户和角色的主键。

3.在实体类描述俩表之间的关系

双方实体类各自包含对方集合的引用。

4.在映射配置文件中配置俩表之间的关系

双方映射配置文件中配置多对多关系的set标签。

二.范例

1.映射配置文件

(1)多对多配置的格式

<!-- 多对多映射配置
        涉及标签:
            set:映射set集合属性
                name:设置集合属性名称
                table:指定中间表的名称
                cascade设置级联操作
            key:映射外键字段
                column:设置当前实体和中间表的外键字段
            many-to-many:映射多对多关系
                class:对方实体类的全限定类名
                column:设置对方实体在中间表的名称
 -->
<set name="sysRoles" table="user_role_ref" cascade="save-update">
    <key column="user_id"></key>
    <many-to-many class="cn.domain.SysRole" column="role_id"></many-to-many>
</set>

(2)user表的映射配置

图片

(3)role表的映射配置

图片

2.实体类

(1)user

图片

(2)role

图片

3.保存操作

图片

图片

4.删除操作【包含注意事项】

图片

三.注意事项

禁止使用级联删除操作多对多关系的表。

四.源码

day03.rar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值