插入数据时返回主键

JDBC 实现插入操作,先查询序列,再将序列值插入到数据库中
Hibernate 插入后可以load到实体,这里就不说了 
MyBatis 
其实实现的思想也是先进行序列的查询,额外需要些配置。
<insert id="addApplication" parameterType="com.ibs.oa.bean.ApplicationBean">
	  <selectKey keyProperty="id" resultType="String" order="BEFORE">
	      SELECT to_char(SEQ_APPLICATION.nextval) id FROM dual
	   </selectKey>
	  insert into T_OA_APPLICATION (ID,TITLE,STATUS,APPLYTIME,APPLICATIONTEMPLATEID,APPLICATIONMANID,PIID,BUSINESSID,BUSINESSTABLE)
	                        VALUES (
	                                #{id},
	                                #{title,javaType=String,jdbcType=VARCHAR},
	                                #{status,javaType=String,jdbcType=VARCHAR},
	                                nvl(#{applyTime,javaType=Date,jdbcType=DATE},sysdate),
	                                #{applicationTemplateId,javaType=String,jdbcType=VARCHAR},
	                                #{applicationManID,javaType=String,jdbcType=VARCHAR},
	                                #{piId,javaType=String,jdbcType=VARCHAR},
	                                #{businessId,javaType=String,jdbcType=VARCHAR},
	                                #{businessTable,javaType=String,jdbcType=VARCHAR}
	                                )
	</insert>

业务代码:
applicationDao.addApplication(application);
这行代码下面的application的ID属性就会被赋值。

你可能感兴趣的:(插入数据时返回主键)