mybatis中useGeneratedKeys和keyProperty的作用
阿新 • • 發佈:2019-01-10
在使用mybatis時,常常會出現這種需求:
當主鍵是自增的情況下,新增一條記錄的同時,其主鍵是不能使用的,但是有時我們需要該主鍵,這時我們該如何處理呢?這時我們只需要在其對應xml中加入以下屬性即可:
useGeneratedKeys="true" keyProperty="對應的主鍵的物件"。
如下例:
<!-- 主要是在主鍵是自增的情況下,新增成功後可以直接使用主鍵值,其中keyProperty的值是物件的屬性值不是資料庫表中的欄位名--> <insert id="saveMsg" parameterType="cn.com.hyddl.smarthome.notice.core.nano.Notice" useGeneratedKeys="true" keyProperty="msgId"> insert into notice(msg_type,title,content,rec_time,send_time,user_id,deleted,viewed) values(#{msgType,jdbcType=INTEGER},#{title,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR},#{recTime,jdbcType=BIGINT}, #{sendTime,jdbcType=BIGINT},#{userId,jdbcType=VARCHAR}, #{deleted,jdbcType=TINYINT},#{viewed,jdbcType=INTEGER}) </insert>
這樣在之後的java程式碼中我們就可以獲取該主鍵對應的物件的屬性值(msgId)。