基于若依框架的数据权限。

数据权限不同于菜单权限,它允许根据不同用户或部门限制数据访问。本文介绍了一个基于若依框架的简单数据权限设置,通过在儿童信息表中添加部门ID字段,使用MyBatis的Mapper文件和Service层的@DataScope注解实现不同幼儿园园长只能操作其所在幼儿园儿童信息的功能。深入理解可通过查看DataScopeAspect.java类的源码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据权限

数据权限和菜单权限不一样

菜单权限:
根据不同的性质的用户,显示不同的菜单。

数据权限:
设置权限,不同的用户只能访问本用户的数据,或者本部门的数据。当然对于特殊的领导可以跨部门访问数据。这些都是可以设置权限。

此代码的数据权限是基于若依框架,基于部门权限的简单数据权限设置。


实现功能

本系统针对多个幼儿园,不同的幼儿园园长,只能增删查改属于本幼儿园的儿童信息。但是所有的儿童信息都储存在同一个表中。此时就需要对不同的幼儿园园长设置数据权限。

实现步骤
  1. 在设置儿童信息表时,添加一个字段部门id(dept_id bigint 20) ,这将作为数据过滤的条件。

儿童信息表

  1. 在MyBaits中的Mapper文件中的select语句中添加(数据过滤范围)
<sql id="selectKinChildrenInfoVo">
        select U.CHILDREN_ID, U.CHILDREN_NAME, U.SEX, BIRTHDAY, U.REGION_CODE, U.HOME_ADDRESS, U.NATION_ID, U.PARENT_NAME, U.PARENT_PHONE ,U.dept_id from kin_children_info U
    </sql>

 <select id="selectKinChildrenInfoList" parameterType="KinChildrenInfo" resultMap="KinChildrenInfoResult">
        <include refid="selectKinChildrenInfoVo"/>
         <!-- 数据范围过滤 -->
        ${params.dataScope}
            <if test="childrenName != null  and childrenName != ''"> and CHILDREN_NAME like concat('%', #{childrenName}, '%')</if>
            <if test="SEX != null  and SEX != ''"> and SEX = #{SEX}</if>
            <if test="BIRTHDAY != null "> and BIRTHDAY = #{BIRTHDAY}</if>
            <if test="regionCode != null  and regionCode != ''"> and REGION_CODE = #{regionCode}</if>
            <if test="homeAddress != null  and homeAddress != ''"> and HOME_ADDRESS = #{homeAddress}</if>
            <if test="nationId != null "> and NATION_ID = #{nationId}</if>
            <if 
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值