MyBatis中如何获取刚插入数据的 id

1、MyBatis中如何获取刚插入数据的 idsql

情景:数据库

三张表app

一、生成订单 (easybuy_order)spa

二、生成订单明细 (easybuy_order_detail)指针

三、更新商品库存 (easybuy_product)code

在经过调用相应的 DAO 接口方法来实现对三张表的更新操做,而且这三步操做也是先后关联的,后一步的操做依托于上一步操做的结果,如第一步生成订单 (即在订单主表(easybuy_order)新增一条数据)以后须要获取到新增订单数据的 id 做为下一步生成订单明细的 orderId。xml

在 : orderDetail.setOrderId(order.getId());    一步中  order.getId() 会报空指针错误。对象

 

析:缘由是 order.getId() 为空,故报空指针异常blog

那么在MyBatis 中,当往Mysql  数据库中插入一条记录后,如何获取该条记录的 id (即自增主键值)?接口

解决方案:在OrderMapper.xml中指定 keyProperty 属性,代码以下:

<insert id="add" parameterType="order" useGeneratedKeys="true" keyProperty="id"> insert into easybuy_order(userId,loginName,userAddress,createTime) values(#{userId},#{loginName},#{userAddress},#{createTime}) </insert>

如上所示,咱们在 insert 中首先设置 useGenerateKeys="true",而后指定keyProperty="id", id表明插入的Order 对象的主键属性。

相关文章
相关标签/搜索