目录
mybatis获取参数的方式
1.${}和#{}
- ${}使用的是
Statement
:必须使用字符串拼接的方式操作sql,注意单引号问题 - #{}使用的是
Preparedstatement
: 可以使用通配符操作SQL,因为在为string赋值时,可以自动加单引号,因此不需要注意单引号问题
2. 不同的参数类型取值方式
2.1当传输参数为单个string或基本数据类型和其包装类
- #{}:可以以任意的名 字获取参数值
- $ {} :只能以
$ {value}
或${_ parameter}
获取
2.2当传输参数为JavaBean时
- #{} 和${}都可以通过属性名直接获属性值,但是要注意${}的单引号问题
2.3当传输多个参数时
mybatis会默认将这些参数放在map集合中
- 两种方式:
- (1) 键为arg0,arg1,arg2,arg3…argN-1, 以参数为值
- (2)键为paraml , param2, param3… . paramN,以参数为值
2.4当传输map参数时
- #{}和${}都可以通过键的名字直接获取,但要注意${}的单引号问题
2.5当传入参数为Map时
#{}和$ {}都可以通过键的名字直接获取参数值,但是${}要注意单引号的问题
2.6命名参数
可以通过@Param(“key”)
为Map集合指定键的名字
Student getStudentById(@Param(“sid”) String sid,@Param(“sname”)String sname);
#{}和$ {}都可以通过键的名字直接获取参数值,但是${}要注意单引号的问题
2.7当传入的参数为List或者Array
MyBatis会将List或Array放在map中,List以list为键,Array以array为键。