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 對象的主鍵屬性。

相關文章
相關標籤/搜索