数据库开发的时候一般我们都是设置主键自增长,所以向数据库插入数据的时候就不再需要设置POJO对象的“主键”属性的值,但是在一些开发实际案例中我们需要用到刚插入数据库中该POJO对象的“主键”属性值,比如一对多关系中的级联保存。
使用Mybatis持久层框架,在插入的时候提供了两种方法将主键赋值给POJO对象
<insert id="insertCustomer2" parameterType="Customer">
/* order="AFTER"表示在下面的插入语句执行之后在执行 */
<selectKey keyColumn="cust_id" order="AFTER" keyProperty="custId" resultType="Integer">
select last_insert_id()
</selectKey>
insert into `customer` (cust_name,cust_profession,cust_phone,email) values
(#{custName},#{custProfession},#{cusPhone},#{custEmail})
</insert>
<insert id="insertCustomer3" parameterType="Customer"
useGeneratedKeys="true" keyProperty="custId" keyColumn="cust_id">
insert into `customer` (cust_name,cust_profession,cust_phone,email)
values (#{custName},#{custProfession},#{custPhone},#{custEmail})
</insert>
这样传入的对象Customer的custId属性就有了值(该值是数据库根据主键自增长自动生成的)
第二种方法比较简单,推荐使用