这是我之前学习mybatis的时候一个盲点,是关于@param
的,我之前不是很明白这个注解的作用到底是干嘛的,我之前在用的时候,如果方法里的参数在两个及以上会用这个参数,但是不是很理解,今天搞明白了!
举一个例子:
<!--根据条件进行查询-->
<select id="findByCondition" parameterType="string" resultType="com.itheima.pojo.CheckGroup">
select * from t_checkgroup
<if test="value != null and value != ''">
where code = #{value} or name = #{value} or helpCode = #{value}
</if>
</select>
我们可以看到parameterType是string类型,我们可以看到下面传入条件全写的value,但我们可以看看我当时的参数是什么
Page<CheckGroup> findByCondition(String queryString);
这里我们参数列表里定义的是queryString,但是我们看到xml里面写的是value,这是因为parameterType是string类型的原因!我们可以看下String源码!
String源码里定义的这个value数组,所返回的就是这个value,所以这里的xml的写法,如果传入的参数类型是String的话,这种写法几乎是固定的!但反之,我们如果用了@param
注解,我们看源码:
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.PARAMETER})
public @interface Param {
String value();
}
我们可以看到,他这个注解里也是重写String返回的value的名字!所以这就是为什么两个及以上参数参数为什么要用@param指定下来!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/16377.html