1,单个参数
boolean deleteByUserId(Long userId);
<!-- 通过userId删除用户所有特殊权限 -->
<delete id="deleteByUserId" parameterType="java.lang.Long" >
delete from o_user_group_rel_t
where USER_ID = #{userId,jdbcType=BIGINT}
</delete>
其中方法名和id必须保持一致,#{}中的参数名与方法中的参数名一致。
2,多参数传值(map(单值,list))
//1.查询用户是否有角色,如果有删除以前的用户角色中间数据
long userId = Long.parseLong((String)map.get("userId"));
userGroupRelMapper.deleteByUserId(userId);
@SuppressWarnings("unchecked")
List<Long> list = (List<Long>)map.get("goupIds");
if(list.size()==0){
return true;
};
//2.用户授权
return userGroupRelMapper.accessSpecialOauth(map);
boolean accessSpecialOauth(Map<String, Object> map);
<!-- 给用户赋予特殊权限 -->
<insert id="accessSpecialOauth" parameterType="map" >
insert into o_user_group_rel_t (USER_ID,GROUP_ID)
values
<foreach collection="goupIds" item="item" index="index" separator="," >
(#{userId},#{item})
</foreach>
</insert>
3, 多值传参也可以用索引
//查询特殊权限
List<Organizations> getSpecialRolesList(long companyId, long currentUserId);
<select id="getSpecialRolesList" resultMap="BaseResultMap" parameterType="java.lang.Long" >
SELECT DISTINCT
g.ORG_ID,
g.ORG_NAME
FROM
p_permissionset_t p
LEFT JOIN o_organizations_t g ON p.GROUP_ID = g.ORG_ID
WHERE
g.ORG_ID IN (
SELECT
company_id
FROM
o_user_t
WHERE
USER_ID IN (
SELECT DISTINCT
p.create_user
FROM
p_permissionset_t p
LEFT JOIN o_organizations_t g ON p.GROUP_ID = g.ORG_ID
WHERE
p.BOOKINGTICKET = '1'
AND g.ORG_ID = #{0}
AND p.user_id = #{1}
)
)
AND ORG_ID != #{0}
</select>