在Mybatis中DAO接口对于参数的传递有严格控制,方法中没有参数或一个参数(Map)
在实际应用的时候,需要传递多个参数,有三种方式如下:
- 通过JavaBean(User user)实体对象来传递,对象里包含多个属性作为参数
- 将多个参数放于Map中,key是参数名,value是参数的值
- 通过@Param注解方式
第一种方式博客里面已经有了,下面讲解第二种和第三种
- 使用Map传参
UserMapper接口:
/**
* 根据用户id和角色enabled状态获取用户的角色
* @param param
* @return
*/
List<SysRole> selectRolesByUserIdAndRoleEnabled(Map<String, Object> param);
UserMapper.xml文件:
<!-- 根据用户id和角色enabled状态获取用户的角色 -->
<select id="selectRolesByUserIdAndRoleEnabled" parameterType="map" resultType="SysRole">
SELECT
r.id,
r.role_name roleName,
r.enabled,
r.create_by createBy,
r.create_time createTime
FROM
sys_role r,
sys_