selectKey用来处理不支持自动生成主键的数据库
只能存在于insert
或update
的子标签中,一般不建议使用
.
注意selectKey
的主要效用并不是用来处理自动生成主键
的,
其本质作用是:用sql语句来处理,需要特殊处理的表中的列字段,
而不是用java代码
来处理,以此来减少代码的冗余度
.
候选属性介绍
keyProperty
结果集映射目标类的属性
;
若存在多个,则使用逗号
分隔;keyColumn
目标类的属性,映射结果集的列名
;
若存在多个,则使用逗号
分割;resultType
设置返回类型;
可使用全类名
或者是别名
;order
设置此selectKey
的执行顺序是早于
sql语句,还是晚于
sql语句;
候选值是BEFORE
和AFTER
;statementType
设置sql语句
的映射类型;候选值有:
STATEMENT
,PREPARED
,CALLABLE
;databaseID
与ibatis
全局配置中的databaseIdProvider
标签呼应.
补充说明
mysql
中可使用rand()
函数来获取随机的小数,
后续完善后,可测试selectKey
标签.
在mysql
中输入? rand
查看帮助手册.- 其他数据库中,可查阅相关官方文档的
数学函数模块
.
代码测试selectKey的效用
- 查看表结构,
entity
类对象省略.CREATE TABLE `emp` ( `id&#