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

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

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

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

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

代碼說(shuō)明:

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

問(wèn)題描述

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

異常如下:

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

問(wèn)題原因

BEFORE還是AFTER的問(wèn)題

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

需要注意的是

Oracle使用before,MySQL使用after

生成帶代碼的時(shí)候可以通過(guò)identity="true"來(lái)指定生成的selectKey是before還是after

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

注:

使用 useGeneratedKeys="true" keyProperty="id" 不存在該問(wèn)題。

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

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

解決方法

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指定庫(kù)名

總結(jié)

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

相關(guān)文章

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

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

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

    從零開(kāi)始在Centos7上部署SpringBoot項(xiàng)目

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Spring Boot+Mybatis的整合過(guò)程

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

最新評(píng)論

桓台县| 灌云县| 蒙自县| 政和县| 永昌县| 包头市| 定州市| 平潭县| 绥滨县| 北票市| 赤峰市| 元朗区| 玛曲县| 喀什市| 德阳市| 河南省| 如东县| 洛南县| 宝鸡市| 广东省| 岳西县| 竹北市| 马山县| 永康市| 察隅县| 元氏县| 林芝县| 铜山县| 贵德县| 监利县| 阿克陶县| 梁河县| 郸城县| 固阳县| 县级市| 时尚| 宜春市| 凤城市| 武城县| 姚安县| 临西县|