selectKey的作用是在mybatis框架中,在插入到表格之后或者之前,查询主键的值。一下举例说明
<insert id="insert" parameterType="com.entity.User" >
<selectKey resultType="java.lang.Integer" keyProperty="userId" order="AFTER">
SELECT currval('upload_file_upload_id_seq')
</selectKey>
insert into user(user_id, user_name
)
values (#{userId,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}
)
</insert>
resultType:返回的主键的类型
keyPropety:实体类对应的主键的属性。
order:如果是after,那么先插入,在执行selectKey中的sql。如果是before,则反之。
SELECT currval('upload_file_upload_id_seq') :在mysql中,使用函数last_insert_id(),
如果是postgresql,oracle,使用currval('upload_file_upload_id_seq')