1、插入时可通过java代码生成一个唯一id,赋值给对象的id属性,该情况下则不存在获取返回id的问题
2、数据库设置了自增长方式 则设置insert标签中 标签内容增加keyProperty="id" useGeneratedKeys="true"属性
3、使用selectKey标签设置 以mysql为例在insert标签中增加
<selectKey keyColumn="id" keyProperty="id" resultType="long" order="AFTER"> select LAST\_INSERT\_ID() </selectKey>
对于不同数据库,order排序方式及对应select需要进行修改
以下是其他一些支持主键自增的数据库配置 selectKey
中回写主键的 SQL 。
DB2 使用 VALUES IDENTITY VAL LOCAL () 。
• MYSQL 使用 SELECT LAST_INSERT_ID () 。
• SQLSERVER 使用 SELECT SCOPE IDENTITY ()。
• CLOUDSCAPE 使用 VALUES IDENTITY VAL LOCAL () 。
• DERBY 使用 VALUES IDENTITY VAL LOCAL () 。
• HSQLDB 使用 CALL IDENTITY () 。
SYBASE 使用 SELECT @@IDENTITY 。
• DB2 MF 使用 SELECT IDENTITY VAL LOCAL(} FROM SYSIBM. SYSDUMMYl 。
• 时FORMIX 使用 select dbinfo ('sqlea. sqlerrdl ’ ) from systables where
tabid=1