Mybatis参数类型为String,@param的作用

导读:本篇文章讲解 Mybatis参数类型为String,@param的作用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

这是我之前学习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

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!