主键生成方式
- 支持主键自增,例如MySQL数据库
- 不支持主键自增,例如Oracle数据库
获取主键值
- 若数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server),则可以设置 useGeneratedKeys=”true”,然后再把 keyProperty 设置到目标属性上。
- 而对于不支持自增型主键的数据库(例如 Oracle),则可以使用 selectKey 子元素:selectKey 元素将会首先运行,id 会被设置,然后插入语句会被调用
<insert id=“insertEmployee” parameterType=“com.a” databaseId=“oracle”> <selectKey order=“BEFORE” keyProperty=“id” resultType=“integer”> select em from dual </selectKey> insert into orcl_employee(id,last_name,email,gender) values(#{id},#{lastName},#{email},#{gender}) </insert>
或者是
<insert id=“insertEmployee” parameterType=“com.a” databaseId=“oracle”> <selectKey order=“AFTER” keyProperty=“id” resultType=“integer”> select em from dual </selectKey> insert into orcl_employee(id,last_name,email,gender) values(em,#{lastName},#{email},#{gender}) </insert>