最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis插入時返回自增主鍵方式(selectKey和useGeneratedKeys)

 更新時間:2021年09月24日 09:34:25   作者:南橋追光  
這篇文章主要介紹了Mybatis插入時返回自增主鍵方式(selectKey和useGeneratedKeys),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Mybatis插入時返回自增主鍵

通過selectKey在插入操作前或者操作后獲取key值,做為字段插入或返回字段。(此段代碼獲取的序列值id作為字段值插入到實體類中返回)

<insert id="insert">
 <selectKey keyProperty="id" resultType="int" order="AFTER">
  SELECT id FROM myTable
 </selectKey> 
 INSERT INTO myTable VALUES(#{id}, #{name})
</insert>

useGeneratedKeys

如果數(shù)據(jù)庫支持自增長主鍵字段(比如mysql、sql server)設置useGeneratedKeys=”true”和keyProperty="Id",id 是表的主鍵名,這樣就可以插入主鍵id值

oracle則不支持自增長id,設置useGeneratedKey=”false”,如果設置true則會有報錯信息。通過nextval函數(shù),如SEQ_table.Nextval生成id

<insert id="addCover" parameterType="java.util.Map" useGeneratedKeys="true" keyProperty="Id">
 insert into cover(title,path,update_time)
 values(#{title},#{path},#{update_time}) 
</insert> 
int addCover(Map<String,Object> map);

Mybatis批量插入返回自增主鍵

我們都知道Mybatis在插入單條數(shù)據(jù)的時候有兩種方式返回自增主鍵:

1、對于支持生成自增主鍵的數(shù)據(jù)庫:useGenerateKeys和keyProperty。

2、不支持生成自增主鍵的數(shù)據(jù)庫:<selectKey>。

但是怎對批量插入數(shù)據(jù)返回自增主鍵的解決方式網上看到的還是比較少,至少百度的結果比較少。

Mybatis官網資料提供如下:

First, if your database supports auto-generated key fields (e.g. MySQL and SQL Server), then you can simply set useGeneratedKeys="true" and set the keyProperty to the target property and you're done. For example, if the Authortable above had used an auto-generated column type for the id, the statement would be modified as follows:

<insert id="insertAuthor" useGeneratedKeys="true"
    keyProperty="id">
  insert into Author (username,password,email,bio)
  values (#{username},#{password},#{email},#{bio})
</insert>

If your database also supports multi-row insert, you can pass a list or an array of Authors and retrieve the auto-generated keys.

<insert id="insertAuthor" useGeneratedKeys="true"
    keyProperty="id">
  insert into Author (username, password, email, bio) values
  <foreach item="item" collection="list" separator=",">
    (#{item.username}, #{item.password}, #{item.email}, #{item.bio})
  </foreach>
</insert>

從官網資料可以看出Mybatis是支持批量插入時返回自增主鍵的。(百度上說不支持的,多打臉 開玩笑的)

但是在本地測試的時候使用上述方式確實不能返回自增id,而且還報錯(不認識keyProperty中指定的Id屬性),然后在網上找相關資料。終于在Stackoverflow上面找到了一些信息。

解決辦法

1、升級Mybatis版本到3.3.1。

2、在Dao中不能使用@param注解。

3、Mapper.xml中使用list變量接受Dao中的集合。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Springboot筆記之熱部署及不生效的解決方案

    Springboot筆記之熱部署及不生效的解決方案

    這篇文章主要介紹了Springboot筆記之熱部署及不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java8?Stream?collect(Collectors.toMap())的使用

    Java8?Stream?collect(Collectors.toMap())的使用

    這篇文章主要介紹了Java8?Stream?collect(Collectors.toMap())的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 講解Java中的基礎類庫和語言包的使用

    講解Java中的基礎類庫和語言包的使用

    這篇文章主要介紹了Java中的基礎類庫和語言包的使用,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • Java后臺基于POST獲取JSON格式數(shù)據(jù)

    Java后臺基于POST獲取JSON格式數(shù)據(jù)

    這篇文章主要介紹了Java后臺基于POST獲取JSON格式數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Java Scala之面向對象

    Java Scala之面向對象

    Scala是一門面向對象的語言。在Scala中,一切皆為對象函數(shù)是對象,數(shù)字也是對象,本文詳細介紹了Scala面向對象的原理和介紹,感興趣的小伙伴可以參考一下
    2023-04-04
  • IDEA集成MyBatis Generator插件的使用

    IDEA集成MyBatis Generator插件的使用

    這篇文章主要介紹了IDEA集成MyBatis Generator插件的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Java如何實現(xiàn)判斷并輸出文件大小

    Java如何實現(xiàn)判斷并輸出文件大小

    這篇文章主要介紹了Java如何實現(xiàn)判斷并輸出文件大小問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 總結Java常用的時間相關轉化

    總結Java常用的時間相關轉化

    今天給大家?guī)淼氖顷P于Java的相關知識,文章圍繞著Java常用的時間相關轉化展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java生成動態(tài)版驗證碼的方法實例

    Java生成動態(tài)版驗證碼的方法實例

    這篇文章主要給大家介紹了利用Java生成動態(tài)版驗證碼的方法實例,本文生成的是GIF格式 + 干擾元素,讓驗證碼破解難度又上了一個層次,文中給出了詳細的示例代碼,并在文末給出了完整的實例代碼供大家下載學習,需要的朋友們下面來一起看看吧。
    2017-04-04
  • java讀寫ini文件、FileOutputStream問題

    java讀寫ini文件、FileOutputStream問題

    這篇文章主要介紹了java讀寫ini文件、FileOutputStream問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論

双流县| 迭部县| 延庆县| 繁昌县| 灌阳县| 绩溪县| 昭通市| 娱乐| 剑川县| 灵璧县| 昌吉市| 宜春市| 当涂县| 凤凰县| 辰溪县| 吴堡县| 内丘县| 西盟| 镇赉县| 原阳县| 蒙山县| 泸溪县| 阿坝县| 蓝山县| 泸州市| 江西省| 安达市| 苗栗市| 嵩明县| 奉化市| 桦甸市| 同心县| 砚山县| 张北县| 潼南县| 启东市| 曲水县| 洪洞县| 晋江市| 加查县| 于田县|