Mybatis插入时返回自增主键(selectKey和useGeneratedKeys)

通过selectKey在插入操作前或者操作后获取key值,做为字段插入或返回字段。(此段代码获取的序列值id作为字段值插入到实体类中返回) 

<insert id="insert">
 <selectKey keyProperty="id" resultType="int" order="AFTER">
  SELECT id FROM myTable
 </selectKey>

 INSERT INTO myTable VALUES(#{id}, #{name})
</insert>

useGeneratedKeys

如果数据库支持自增长主键字段(比如mysql、sql server)设置useGeneratedKeys=”true”和keyProperty="Id",id 是表的主键名,这样就可以插入主键id值 
oracle则不支持自增长id,设置useGeneratedKey=”false”,如果设置true则会有报错信息。通过nextval函数,如SEQ_table.Nextval生成id

<insert id="addCover" parameterType="java.util.Map" useGeneratedKeys="true" keyProperty="Id">
 insert into cover(title,path,update_time)
 values(#{title},#{path},#{update_time}) 
</insert> 
int addCover(Map<String,Object> map);

猜你喜欢

转载自blog.csdn.net/qq_34122822/article/details/79254361