mybatis 返回主鍵一直爲1

1. 返回的插入成功的行數,這沒有錯

而自增id則是直接映射到對象裏,直接輸出 xxx.getId()即可

舉例:
在xml中:

<insert id="addUser" parameterType="blog.model.User" useGeneratedKeys="true" keyProperty="id">
......
返回影響行數


2. java中代碼:

int primary = userService.addUser(user);
int id = user.getId();
上面的id就是返回的主鍵

 

3. 批量插入

void insertBatch(List<DafSequence> list);
然後是mapper對應的代碼:

<insert id="insertBatch" parameterType="List" useGeneratedKeys="true" keyProperty="id">
  INSERT INTO daf_sequence
  (id,table_name, cloumn_name)
  VALUES
  <foreach collection ="list" item="sequence" index="index" separator =",">
    (#{sequence.id},#{sequence.tableName}, #{sequence.cloumnName})
  </foreach >
</insert>
ps:id在list中對象裏

需要注意點的點如下:

1.dao中不要出現@param註解,集合變量名請使用list

2.collection對應的值請使用list

3.數據庫版本要求3.3以上版本

說明:除了特別注意的這兩點之外,其他的屬於基本操作

這樣配置之後,每次批量操作之後的主鍵id就會自動保存到對應的對象裏面了
 

發佈了33 篇原創文章 · 獲贊 47 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章