@Param
2020-08-04 本文已影响0人
jiahzhon
作用
- 作为Dao层的注解,作用是用于传递参数,从而可以与SQL中的的字段名相对应,一般在2=<参数数<=5时使用最佳。
原始方法
- 当只有一个参数时,没什么好说的,传进去一个值也只有一个参数可以匹配。当存在多个参数时,传进去的值就区分不开了,这时可以考虑用Map
public List<Role> findRoleByMap(Map<String, Object> parameter);
此时xml
<select id="findRoleByMap" parameterType="map" resultType="role">
SELECT id,name FROM t_role
WHERE roleName=#{roleName}
AND note=#{note}
<select>
- 也可以使用过pojo
public List<Role> findRoleByBean(RoleParam role);
使用@Param
- 参数少的时候这样清晰明了
public List<Role> findRoleByAnnotation(@Param("roleName") String roleName, @Param("note") String note);
- 而使用更多的场景可能是这样的,对应多个POJO
public List<Role> findRoleByMix(@Param("roleP") RoleParam role, @Param("permissionP") PermissionParam permission);
这样就可以进行如下映射
<select id="findRoleByMix" resultType="role">
SELECT id,name FROM t_role
WHERE roleName=#{roleP.roleName}
AND note=#{rolep.note}
AND level=#{permissionP.level}
<select>
注意此时并不需要写出parameterType属性,Mybatis会进行自动搜索。