@Param

作者: jiahzhon | 来源:发表于2020-08-04 15:14 被阅读0次
    作用
    • 作为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会进行自动搜索。

    相关文章

      网友评论

          本文标题:@Param

          本文链接:https://www.haomeiwen.com/subject/yjwprktx.html