MyBatis SQL语句参数注解详释

来源:互联网 发布:巴蒂尔数据 编辑:程序博客网 时间:2024/04/27 16:13

在Mybatis写SQL语句的时候,避免不了参数的传入。通常情况下,参数的传入可以分为两大类:

1、使用@Param注解

2、不使用@Param注解


下面详细介绍这两种方式的参数传递规则:

一、不使用@Param注解

  1、接口方法只有一个参数

   1) 参数为基本类型或为基本包装类型(int,Integer,String...)

             参数注释为: #{任意字符}

  1.   User getUserById(int id);

  2.   // select * from table where id = #{任意字符}  
  3.   select * from table where id = #{id}  

      2)参数是对象类型

          参数注释为: #{对象属性}

 

  1. // user.getName user.getAge 
  2. User getUser(User user);  
  3.      
  4. select * from table where name = #{name} and age = #{age} 

 2、接口方法有多个参数

   1)参数为基本类型或为基本包装类型(int,Integer,String...)

          参数注释为: #{参数位置[0..n-1]} 或者 #{param[1..n]}

  1. User getUser(String name, int age);
  2.   
  3. // SQL
  4. select * from table where name = #{0} and age = #{1}  
  5.  // or  
  6. select * from table where name = #{param1} and age = #{param2}  
       2)参数是对象

        参数注释为: #{参数位置[0..n-1].对象属性} 或者 #{param[1..n].对象属性}

  1. User getUser(User user, booleanflag);  

  2. // SQL
  3. select * from table where name = #{0.name} and age = {0.age} and flag = #{1}  
  4.  // or  
  5. select * from table where name = #{param1.name} and age = {param1.age} and flag = #{param2}

二、使用@Param注解

   1、接口只有一个参数

 1)参数为基本类型或为基本包装类型(int,Integer,String...)

            参数注释为: #{注解名称} 或者 #{param1}

  1.  User getUserById(@Param("id")int id);
  2.  
  3.  select * from table where id = #{id} 
  4. //or
  5. select * from table where id = #{param1}
        2) 参数是自定义对象

           参数注释为: #{注解名称.对象属性} 或者 #{param1.对象属性}

  1. // user.getName user.getAge 
  2. User getUser(@Param("user")User user);  
  3.      
  4. select * from table where name = #{user.name} and age = #{user.age} 
  5. //or
  6. select * from table where name=#{param1.name} and age = #{param1.age}
     

     2、接口有多个参数

    1)参数为基本类型或为基本包装类型(int,Integer,String...)
    参数注释为: #{注解名称} 或者 #{param[1..n]}
2 )参数为自定义对象
          参数注释为: #{注解名称.对象属性} 或者 #{param[1..n].对象属性}















1 0
原创粉丝点击