首页后端开发其他后端知识Mybatis @Select注解基本用法是什么

Mybatis @Select注解基本用法是什么

时间2024-03-24 16:14:03发布访客分类其他后端知识浏览1124
导读:这篇文章主要给大家介绍“Mybatis @Select注解基本用法是什么”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Mybatis @Select注解基本用法是什么”文...
这篇文章主要给大家介绍“Mybatis @Select注解基本用法是什么”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Mybatis @Select注解基本用法是什么”文章能对大家有所帮助。

1、@Select注解基本用法

@Select注解的目的是为了取代xml中的select标签,只作用于方法上面。

下面看一下@Select注解的源码介绍:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Select
{
    
  String[] value();

}

从上述可以看到两点信息:

(1)@Select注解只能修饰方法

(2)@Select注解的值是字符数组。

所以,@Select注解的用法是这样的:

@Select({
 "select * from xxx", "select * from yyy" }
    )
Person selectPersonById(Integer id);

虽然@Select注解的值是字符数组,但是真正生效的应该是最后那条SQL语句。这一点请大家要留意一下。

2、@Select注解动态SQL拼写

普通的字符串值,只能实现变量的替换功能,如下所示,

@Select("select * from t_person where id = #{
id}
    ")
Person selectPersonById(Integer id);
    

如果要想实现复杂的逻辑判断,则需要使用标签,如下所示:

@Select("script>
 select * from t_person where id = #{
id}
    
when test='address !=null'>
 and address = #{
address}
    
/when>
     /script>
    ")
Person selectPersonById(Integer id);
    

其实,标签并非是@Select注解专用的,其他的注解,例如@Insert,@Update等等,都可以使用的。

@Select动态参数参考

今天发现一个问题,使用标签进行查询语句的拼接时,逗号和引号老处理不好,所以在此记录下,供以后参考

    @Select("script>
    " +
            " select * from tb_crowd_fund_person_record a,tb_crowd_fund_info b where b.id=a.crowd_fund_info_id " +
            " if test='activeStatus != null and activeStatus != \"\"'>
 "+
            "  and b.active_status=#{
activeStatus}
     " +
            " /if>
     " +
            " if test='createUser != null and createUser != \"\"'>
 "+
            "  and a.create_user=#{
createUser}
     " +
            " /if>
     " +
            "/script>
    ")
    ListString>
     findByType(MapString,String>
     map);
    



以上就是关于Mybatis @Select注解基本用法是什么的介绍,本文内容仅供参考,有需要的朋友可以借鉴了解看看,希望对大家学习或工作,想要了解更多欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Mybatis @Select注解基本用法是什么
本文地址: https://pptw.com/jishu/652172.html
php-cs-fixer格式化代码怎么操作,写法是什么 MySQL安装cmake方式有几种?怎样操作?

游客 回复需填写必要信息