获取主键值
insert into emp values(null,#{ename},#{age},#{sex}) /*insert into emp values(null,'${ename}',${age},'${sex}')*/不同的参数类型,${}和#{}的不同取值方式:
1.当传输参数为单个String或基本数据类型及其包装类
#{}:可以以任意的名字获取参数值
:
只
能
以
{}:只能以
:只能以{value}huo${_parameter}获取
2.当传输参数为javabean时
#{}和 都 可 以 通 过 属 性 名 直 接 获 取 属 性 值 , 但 是 要 注 意 {}都可以通过属性名直接获取属性值,但是要注意 都可以通过属性名直接获取属性值,但是要注意{}的单引号问题
3.当传输多个参数时,mybatis会默认将这些参数放在map集合中
两种方式:
(1)键为01.2,3,…n-1 以参数为值
(2)键为param1,param2,param3…param(n). 以参数为值
#{}:#{arg0}/#{arg1};#{param1},#{param2}
:
{}:
:{param1},
p
a
r
a
m
2
,
{param2} ,
param2,{arg0},
a
r
g
1
.
但
是
要
注
意
{arg1}. 但是要注意
arg1.但是要注意{}的单引号问题
4.当传输map参数时
#{}和 都 可 以 通 过 键 的 名 字 直 接 获 值 , 但 是 要 注 意 {}都可以通过键的名字直接获值,但是要注意 都可以通过键的名字直接获值,但是要注意{}的单引号问题
5,命名参数
可以通过@param(:‘key’)为map集合指定键的名字
Emp getEmpByIDAndEnameParam(@Param(“eid”) Integer eid, @Param(“ename”) String ename);
#{}和
都
可
以
通
过
键
的
名
字
直
接
获
值
,
但
要
注
意
{}都可以通过键的名字直接获值,但要注意
都可以通过键的名字直接获值,但要注意{}的单引号问题
6.当传输参数为List或Array,mybatis会将List或Array放在map中
List以list为键,Array以array为键