MyBatis--获取参数值

MyBatis获取参数值的两种方式 : ${} 和 #{}

        ${}的本质是字符串 ,#{}的本质是占位符赋值

        ${}使用字符串拼接的方式拼接sql ,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号。

        #{}使用占位符赋值的方式拼接sql ,此时为字符串类型或日期类型的字段进行赋值时 ,可以自己添加单引号。

1.若mapper接口方法的参数为单个的字面量类型,此时可以通过#{}和${}以任意的内容获取参数值,一定要注意${}的单引号问题 。

2.若mapper接口方法的参数为多个的字面量类型,此时MyBatis会将参数放在map集合中,以两种方式存储数据 :

         a:以arg0,arg1...为键,以参数为值

         b:以param1,param2...为键,以参数为值

因此,只需要通过#{}和${}访问map集合的键,就可以获取相对应的值,一定要注意${}的单引号问题。

3.若mapper接口方法的参数为map集合类型的参数,只需要通过#{}和${}访问map集合的键,就可以获取相对应的值,一定要注意${}的单引号问题

4.若mapper接口方法的参数为实体类类型的参数,只需要通过#{}和${}访问实体类中的属性名,就可以获取相对应的属性值.

5.可以在mapper接口方法的参数上设置@Param注解,此时MyBatis会将这些参数放在map中.

以两种方式进行存储

  • 以 @Param 注解的 value 属性值为键 , 以参数为值
  • 以param1,param2...为键 , 以参数为值

1.单个字面量类型的参数

        若mapper接口方法的参数为单个的字面量类型,此时可以通过#{}和${}以任意的内容获取参数值,一定要注意${}的单引号问题。

例:

使用${ } ,需要用单引号括起来

2.多个字面量类型的参数

MyBatis--获取参数值_第1张图片

例 :

如果不写 arg 或 paramt 会报异常

异常 : 编译时映射文件异常 , 并提示可以使用的参数有 [arg1, arg0, param1, param2]

3.map集合类型的参数

接口

测试类(自定义键)

MyBatis--获取参数值_第2张图片

映射文件

4.实体类类型的参数

接口方法

映射文件

参数方法

MyBatis--获取参数值_第3张图片

5.使用@Param标识参数

MyBatis--获取参数值_第4张图片

接口

MyBatis--获取参数值_第5张图片

映射文件

可以直接使用@Param定义好的键

测试方法

MyBatis--获取参数值_第6张图片

你可能感兴趣的:(Java,MyBatis,笔记,mybatis,java,mysql)