1,@SelectKey配置文件@SelectKey注释的作用域是方法,效果与标签等效。
@SelectKey注释用于@Insert或@InsertProvider或@Update或@UpdateProvider注释的方法。 对没有上述四个注释的方法附加@SelectKey注释将被视为无效。
2、@SelectKey使用注意事项@SelectKey评论,即命令他人、指挥他人,主要体现在两个方面:
)1)自身无效的。 需要前置评论。 @Insert、@InsertProvider、@Update、@UpdateProvider,否则无效。
)2)他人无效的。 如果指定@SelectKey注释,MyBatis将忽略在@Options注释中设置的生成主键。
3,@SelectKey的属性@SelectKey的属性有以下几种。
statement属性:填充要执行的SQL字符串数组。 keyProperty属性:输入要更新的参数对象属性的值。 before属性:输入true或false的值,以指定是在插入SQL语句之前还是之后执行。 resultType属性:输入密钥属性的Java类型。 StatementType属性:输入Statement、PreparedStatement和CallableStatement的Statement、PREPARED或CALLABLE值。 默认值为PREPARED。 4,@SelectKey的应用如果场景数据库中插入了数据,并且有主键想返回到该记录,该怎么办? 有两种情况:
)1)数据库的主键需要预先生成,而不是自增列
)2)为自增列,插入后可得知
这两种情况都可以通过SelectKey解决。 第一个是before,第二个是after。