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

解決mybatis generator MySQL自增ID出現(xiàn)重復(fù)問題MySQLIntegrityConstraintViolationException

 更新時間:2024年10月17日 08:41:47   作者:lzh_me  
在MySQL中使用MyBatis時,可能會遇到由于主鍵重復(fù)導(dǎo)致的插入失敗問題,此問題通常發(fā)生在連續(xù)插入多條數(shù)據(jù)時,如果selectKey的order配置錯誤,如使用BEFORE而不是AFTER,將會導(dǎo)致獲取的ID未更新,引起主鍵重復(fù)錯誤,正確的配置應(yīng)使用AFTER

mybatis generator MySQL自增ID出現(xiàn)重復(fù)問題

PS:有時候不注意可能導(dǎo)致該問題,此處只做記錄,以供參考。

代碼說明:

數(shù)據(jù)庫是MySQL,用generator 生成的mapper.xml中的代碼,自增ID,使用的是selectKey來獲取。

問題描述

insert的時候,添加的時候,第一條數(shù)據(jù)添加成功,接著添加第二條數(shù)據(jù)的時候會提示失敗,失敗的原因是ID還是使用的上一個ID值,主鍵重復(fù)導(dǎo)致插入失敗。

異常如下:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '4' for key 'PRIMARY'

問題原因

BEFORE還是AFTER的問題

<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer">
      SELECT LAST_INSERT_ID()
    </selectKey>

需要注意的是

Oracle使用before,MySQL使用after

生成帶代碼的時候可以通過identity="true"來指定生成的selectKey是before還是after

<generatedKey column="id" sqlStatement="Mysql" identity="true" />

注:

使用 useGeneratedKeys="true" keyProperty="id" 不存在該問題。

mybatis generator生成實體時出現(xiàn)重復(fù)

java項目 中使用 org.mybatis.generator生成mysql數(shù)據(jù)庫實體時,由于mysql 數(shù)據(jù)庫中存在多個庫,如果庫中出現(xiàn)重復(fù)表時,會出現(xiàn)生成的實體代碼出現(xiàn)重復(fù)問題,原因是數(shù)據(jù)庫生成實體時會掃描所有的庫,

解決方法

1、第一種

jdbc:mysql://localhost:3306/table?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&nullCatalogMeansCurrent=true

在連接串中加入nullCatalogMeansCurrent=true就行了

2、第二種方式是設(shè)置

<table tableName="table" catalog="dataName"></table> 

使用catalog指定庫名

總結(jié)

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

相關(guān)文章

  • Spring Boot整合Spring Security簡單實現(xiàn)登入登出從零搭建教程

    Spring Boot整合Spring Security簡單實現(xiàn)登入登出從零搭建教程

    這篇文章主要給大家介紹了關(guān)于Spring Boot整合Spring Security簡單實現(xiàn)登入登出從零搭建的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧
    2018-09-09
  • 從零開始在Centos7上部署SpringBoot項目

    從零開始在Centos7上部署SpringBoot項目

    本文主要介紹了從零開始在Centos7上部署SpringBoot項目,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 關(guān)于RestTemplate中的Get請求

    關(guān)于RestTemplate中的Get請求

    這篇文章主要介紹了關(guān)于RestTemplate中的Get請求,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解java JDK 動態(tài)代理類分析(java.lang.reflect.Proxy)

    詳解java JDK 動態(tài)代理類分析(java.lang.reflect.Proxy)

    這篇文章主要介紹了詳解java JDK 動態(tài)代理類分析(java.lang.reflect.Proxy)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Spring @Transaction 注解執(zhí)行事務(wù)的流程

    Spring @Transaction 注解執(zhí)行事務(wù)的流程

    這篇文章主要介紹了Spring @Transaction 注解執(zhí)行事務(wù)的流程,Spring 是如何開啟事務(wù)的?又是如何進行提交事務(wù)和關(guān)閉事務(wù)的,本文給大家詳細介紹,需要的朋友可以參考下
    2021-06-06
  • Spring中的AOP動態(tài)代理源碼詳解

    Spring中的AOP動態(tài)代理源碼詳解

    這篇文章主要介紹了Spring中的AOP動態(tài)代理源碼詳解,AOP即面向切面編程也稱面向方面編程,它是面向?qū)ο缶幊蘋OP的一種補充,目前已成為一種比較成熟的編程方式,本文就其源碼進行解析,需要的朋友可以參考下
    2023-09-09
  • Mybatis如何實現(xiàn)InsertOrUpdate功能

    Mybatis如何實現(xiàn)InsertOrUpdate功能

    這篇文章主要介紹了Mybatis如何實現(xiàn)InsertOrUpdate功能,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Java實現(xiàn)Elasticsearch查詢當(dāng)前索引全部數(shù)據(jù)的完整代碼

    Java實現(xiàn)Elasticsearch查詢當(dāng)前索引全部數(shù)據(jù)的完整代碼

    這篇文章主要介紹了如何在Java中實現(xiàn)查詢Elasticsearch索引中指定條件下的全部數(shù)據(jù),通過設(shè)置滾動查詢參數(shù)(scroll),可以一次性獲取滿足條件的數(shù)據(jù),而不需要限制每頁的查詢條數(shù)大小,這樣可以避免因數(shù)據(jù)量過大而引發(fā)的性能問題,需要的朋友可以參考下
    2025-02-02
  • 云服務(wù)器環(huán)境搭建及部署(jdk、mysql、redis、nginx環(huán)境搭建)詳細步驟

    云服務(wù)器環(huán)境搭建及部署(jdk、mysql、redis、nginx環(huán)境搭建)詳細步驟

    這篇文章主要給大家介紹了關(guān)于云服務(wù)器環(huán)境搭建及部署(jdk、mysql、redis、nginx環(huán)境搭建)詳細步驟的相關(guān)資料,要在云服務(wù)器上搭建JDK、MySQL、Redis和Nginx的環(huán)境,可以按照以下步驟進行操作,需要的朋友可以參考下
    2024-01-01
  • Spring Boot+Mybatis的整合過程

    Spring Boot+Mybatis的整合過程

    這篇文章主要介紹了Spring Boot+Mybatis的整合過程,需要的朋友可以參考下
    2017-07-07

最新評論

瑞丽市| 横山县| 澳门| 寻甸| 旌德县| 北碚区| 通山县| 双牌县| 武川县| 恩平市| 明光市| 深水埗区| 紫阳县| 靖安县| 昂仁县| 微山县| 双鸭山市| 克什克腾旗| 北安市| 罗定市| 阿瓦提县| 柏乡县| 北票市| 通山县| 武冈市| 泸西县| 阿克苏市| 那曲县| 阿克陶县| 吴旗县| 二连浩特市| 锡林浩特市| 金川县| 延吉市| 临海市| 舒城县| 舟山市| 雷山县| 保康县| 广丰县| 上杭县|