Mybatis @Param注解的作用

1.@Param注解用于给参数命名
如果传递的参数类型是基本数据类型和String类型,需要使用这个注解
踩坑就是如果不使用@Param注解,参数传递不过去,虽然名字是一样的,但是Param不能省略
这里就是给接口里面的参数重命名为#{}里面的名称

List<EditCheckIdToFuncName> getEditCheckIdToFunctionNameByMap(@Param("studyId") String studyId, @Param("ecrfDraftId") String ecrfDraftId);
<resultMap id="funcMap" type="com.XXXXXX.app.edc.business.draft.excel.EditCheckIdToFuncName">
        <id column="edit_check_id" jdbcType="VARCHAR" property="editCheckId"/>
        <result column="name" jdbcType="VARCHAR" property="name"/>
        <result column="function_type" jdbcType="INTEGER" property="functionType"/>
    </resultMap>
    <select id="getEditCheckIdToFunctionNameByMap" resultMap="funcMap">
        select a.edit_check_id,a.name,a.function_type from
            (select p.edit_check_id,p.study_id,p.ecrf_draft_id,p.ecrf_version_id,p.ecrf_sub_version_id, c.name ,c.function_type
             from edc_crf_logical_action_parameter p
                      left join edc_customized_function c
                                on  c.id = p.function_id) a
        where a.function_type = 2
          and a.study_id = #{studyId}
          and a.ecrf_draft_id = #{ecrfDraftId}
    </select>

2.不使用这个注解的情况:传递的是一个JAVABEAN

猜你喜欢

转载自blog.csdn.net/kunAUGUST/article/details/120345474