首页 > 代码库 > 多表关联时,新增数据要考虑的问题。

多表关联时,新增数据要考虑的问题。

<insert id="addCustomer" parameterType="com.pd.gch.moudles.customer.model.Customer" useGeneratedKeys="true" keyProperty="id">
    <!--<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">-->
      <!--SELECT LAST_INSERT_ID() AS id-->
    <!--</selectKey>-->

 

Customer,Organization, RefOrganizationCustomer三张表。ID都是自增。(mysql数据库)

 

有多张表有关联关系时,新增关系表RefOrganizationCustomer的数据时,如何获取Customer和Organiaztion的ID!!!

mybatis的<insert>时,加上useGeneratedKeys属性,设为true,KeyProperty的值对应的是customer表对应的customer实体类的主键ID,假如名字叫A,

那么这里的值就为A。

 

执行完<insert>后,新增的customer表的ID就被赋值到它对应的customer实体类里了。这个时候customer.getId()获取到的就是新增后的ID值了。

 

上面的<selectKey>是Oracle的用法。

 

 

 

多表关联时,新增数据要考虑的问题。