1.如果数据库支持自动增长,如mysql和sqlserver,那么可以设置useGeneratedKeys="true",而且设置keyProperty到你已经做好的目标属性上
例如:上面的表中已经对id进行了自动生成的列类型,那么语句可以修改为
<inserrt id="insertauthor" parameterType="domain.....author"
userGeneratedKeys="true" keyProperty="id">
插入语句,与id无关
</insert>
2.若果数据库不支持自动增长,有另一种方法处理数据库不支持自动生成类型
<insert ................>
<selectKey keyProperty="id" resulttype="int" order="before">
select CAST(RANDOM()*1000 AS INTEGER) a from SYSIBM.SYSDUMMY1
</selectKey>
insert into author
</insert>
以上为通过选择一个随机的整数作为id,来传入参数 ,sql中需要包含id
在以上的示例中,selectKey将会被首先运行,id位置先被设置,然后插入语句会被调用
<selectKey keyProperty="id" resultType="int" order="BEFORE" statementType="PREPARED">
</selectKey>