在使用mybatis時,常常會出現這種需求:
當主鍵是自增的情況下,添加一條記錄的同時,其主鍵是不能被使用的(為空),但是有時我們需要該主鍵,這時我們該如何處理呢?這時我們只需要在其對應xml中加入以下屬性即可:
<insert id="insertSelective" parameterType="com.vmware.miaosha.dataobject.UserPasswordDO" keyProperty="id" useGeneratedKeys="true">
示例代碼:
// 實現model -> dataObject方法
UserDO userDO = convertFromModel(userModel);
// insertSelective與insert的區別:
// insertSelective 如果數據庫中表字段設置了默認值,那么插入的值為空,就使用數據庫默認的值。
// insert 如果插入的值為空,就會使用null覆蓋數據庫中表字段設置的默認值
userDOMapper.insertSelective(userDO);
userModel.setId(userDO.getId()); // userDO中就包含了“自增的ID”
UserPasswordDO userPasswordDO = convertPasswordFromModel(userModel);
userPasswordDOMapper.insertSelective(userPasswordDO);