Mybatis insert、update 、delete返回值


在使用mybatis做持久層時,insert、update、delete,sql語句默認是不返回被操作記錄主鍵的,而是返回被操作記錄條數;

那麼如果想要得到被操作記錄的主鍵,可以通過下面的配置方式獲取。

針對Sequence主鍵而言,在執行insert sql前必須指定一個主鍵值給要插入的記錄,如Oracle、DB2,可以採用如下配置方式:

<insert id="save" parameterType="user">

<selectKey resultType="java.lang.Short" order="BEFORE" keyProperty="id">

SELECT SEQ_TEST.NEXTVAL FROM DUAL

</selectKey>

insert into user(name, age,password) values (#{name},#{age},#{password})

</insert>

針對自增主鍵的表,在插入時不需要主鍵,而是在插入過程自動獲取一個自增的主鍵,比如MySQL,可以採用如下兩種配置方式:

 

<insert id="save" parameterType="user" useGeneratedKeys="true" keyProperty="id">

insert into user(name, age,password) values (#{name},#{age},#{password})

</insert>

 或

<insert id="save" parameterType="user">

<selectKey resultType="java.lang.Short" order="AFTER" keyProperty="id">

SELECT LAST_INSERT_ID() AS id

</selectKey>

insert into user(name, age,password) values (#{name},#{age},#{password})

</insert>

 在插入操作完成之後,參數user的id屬性就已經被賦值了,再在邏輯層利用user.getId()獲取就好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章