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

詳解Mybatis逆向工程中使用Mysql8.0版本驅(qū)動(dòng)遇到的問題

 更新時(shí)間:2018年10月10日 13:53:20   作者:Dmego的博客  
今天在使用 8.0.12 版的 mysql 驅(qū)動(dòng)時(shí)遇到了各種各樣的坑。這篇文章主要介紹了詳解Mybatis逆向工程中使用Mysql8.0版本驅(qū)動(dòng)遇到的問題,感興趣的小伙伴們可以參考一下

前言

今天在使用 8.0.12 版的 mysql 驅(qū)動(dòng)時(shí)遇到了各種各樣的坑,在使用 JDBC 連接上遇到的問題可以參考我的上一篇博客。我在使用 mybatis 逆向工程生成各種 mapper , pojo , dao 時(shí),遇到了一個(gè)困惑我好幾個(gè)小時(shí)的錯(cuò)誤,這個(gè)錯(cuò)誤是

Result Maps collection already contains value for BaseResultMap

產(chǎn)生這個(gè)錯(cuò)誤可能有各種原因。但是這里我只說我的原因及解決過程。

初步探索

我在網(wǎng)上查閱了大量的博客文章,對(duì)于產(chǎn)生這類錯(cuò)誤的原因最多的是:生成了多次 mapper , dao 以及 pojo 文件。也就是多次運(yùn)行了生成這些文件的方法。造成 XXXmapper.xml 中出現(xiàn)了重復(fù)的 resultmap 。但是我這里把這些文件刪除后,再重新生成還是會(huì)報(bào)這個(gè)錯(cuò)。所以肯定不是多次生成的問題。

于是我打開了出現(xiàn)問題的那個(gè) Mapper.xml 文件,搜索 BaseResultMap 發(fā)現(xiàn)其作為 resultMap 的 id 居然出現(xiàn)了三次,還有很多其他的 sql 標(biāo)簽的 id 也有很多重復(fù)的。我將這些重復(fù)的都刪除,再次運(yùn)行,成功了,沒有出現(xiàn)錯(cuò)誤。而且利用這些生成的 mapper 做后面的功能也沒有任何問題。這就非常奇怪,為什么會(huì)多生成這些代碼呢,我繼續(xù)在網(wǎng)上找相關(guān)的文章。

深入探索

好不容易找到一篇博客中提到 :升級(jí)到 mysql 8.0 驅(qū)動(dòng)后的使用 mybatis 逆向工程生成的文件或不一樣,具體的怎么不一樣也沒有說??吹竭@里,我猜會(huì)不會(huì)是驅(qū)動(dòng)版本造成的,于是我將 pom.xml 里的 mysql 驅(qū)動(dòng)版本調(diào)整到了 5.1.10。刪干凈文件,再次生成后,發(fā)現(xiàn)之前出錯(cuò)的那個(gè) mapper.xml 里的 以 BaseResultMap 作為 id 的 resultMap 只有一個(gè)了,其他的 resultMap 中 id 也是唯一的。為了檢驗(yàn)這次生成的到底有沒有用。我啟動(dòng) Tomact 運(yùn)行程序。發(fā)現(xiàn)正常啟動(dòng),后續(xù)的功能也沒有問題。

最終解決

但是如果使用 5.0 版本的驅(qū)動(dòng)連接 mysql 8.0 在項(xiàng)目中可能會(huì)遇到難以預(yù)料的問題,所以我并沒有就此將驅(qū)動(dòng)版本改變。我繼續(xù)在網(wǎng)上通過換各種關(guān)鍵詞來搜尋解決方案。幾個(gè)小時(shí)過去了,還是沒有任何結(jié)果。最后被迫去看了 [MyBatis Generator] 的官方英文文檔。中文文檔已經(jīng)看過了,沒有找到相關(guān)的內(nèi)容。在閱讀英文文檔中,我在Database Specific Information (使用注意事項(xiàng))下面的 mysql使用注意事項(xiàng) 中似乎找到了相關(guān)的內(nèi)容。其原內(nèi)容如下:

If you are using version 8.x of Connector/J you may notice that the generator attempts to generate code for tables in the MySql information schemas (sys, information_schema, performance_schema, etc.) This is probably not what you want! To disable this behavior, add the property “nullCatalogMeansCurrent=true” to your JDBC URL.

For example:

  <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/my_schema"
      userId="my_user" password="my_password">
    <property name="nullCatalogMeansCurrent" value=true" />
  </jdbcConnection>

上面的英文文檔翻譯過來就是:

如果您使用的是Connector / J的8.x版,您可能會(huì)注意到生成器嘗試為MySql信息模式(sys,information_schema,performance_schema等)中的表生成代碼。這可能不是您想要的! 要禁用此行為,請(qǐng)將屬性“nullCatalogMeansCurrent = true”添加到JDBC

的確,我發(fā)現(xiàn)使用 8.0 版的驅(qū)動(dòng)比使用 5.0 版時(shí)不僅 mapper.xml 文件中多生成了好多代碼,而且還多生成了一個(gè) xxxWithBLOBs 的 pojo 文件。雖然還是不太理解上面說的問題,但是我還是添加 nullCatalogMeansCurrent 屬性。然后重新生成了相關(guān)的 mapper , pojo , dao 。打開之前出現(xiàn)問題的 mapper.xml 文件,和使用 5.0 版的驅(qū)動(dòng)生成的代碼一樣,以 BaseResultMap 作為 id 的 resultMap 只有一個(gè)了。再次啟動(dòng) Tomact,成功啟動(dòng),沒有任何問題,測(cè)試其他業(yè)務(wù)功能,也沒有任何問題。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringCloud 微服務(wù)最佳開發(fā)實(shí)踐

    SpringCloud 微服務(wù)最佳開發(fā)實(shí)踐

    本文結(jié)合我們實(shí)際的開發(fā)中遇到的一些問題整理出了一份微服務(wù)開發(fā)的實(shí)踐規(guī)范,對(duì)SpringCloud 微服務(wù)開發(fā)實(shí)踐相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-07-07
  • Spring Boot修改啟動(dòng)端口的方法

    Spring Boot修改啟動(dòng)端口的方法

    下面小編就為大家?guī)硪黄猄pring Boot修改啟動(dòng)端口的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • 解析SpringSecurity自定義登錄驗(yàn)證成功與失敗的結(jié)果處理問題

    解析SpringSecurity自定義登錄驗(yàn)證成功與失敗的結(jié)果處理問題

    這篇文章主要介紹了SpringSecurity系列之自定義登錄驗(yàn)證成功與失敗的結(jié)果處理問題,本文通過實(shí)例給大家講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot整合EasyCaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能

    SpringBoot整合EasyCaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能

    這篇文章主要介紹了SpringBoot整合EasyCaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-02-02
  • SpringMVC結(jié)合Jcrop實(shí)現(xiàn)圖片裁剪

    SpringMVC結(jié)合Jcrop實(shí)現(xiàn)圖片裁剪

    這篇文章主要介紹了SpringMVC結(jié)合Jcrop實(shí)現(xiàn)圖片裁剪的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Spring中最常用的注解之一@Autowired詳解

    Spring中最常用的注解之一@Autowired詳解

    本文講解了Spring中最常用的注解之一@Autowired, 平時(shí)我們可能都是使用屬性注入的,但是后續(xù)建議大家慢慢改變習(xí)慣,使用構(gòu)造器注入。同時(shí)也講解了這個(gè)注解背后的實(shí)現(xiàn)原理,需要的朋友可以參考下
    2023-01-01
  • 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)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧
    2018-09-09
  • SpringMvc微信支付回調(diào)示例代碼

    SpringMvc微信支付回調(diào)示例代碼

    微信一直是一個(gè)比較熱門的詞匯,今天這篇文章主要介紹的是SpringMvc微信支付回調(diào)的示例代碼,對(duì)大家開發(fā)微信支付具有一定的參考借鑒價(jià)值,下面來一起看看吧。
    2016-09-09
  • JavaWeb中導(dǎo)出excel文件的簡(jiǎn)單方法

    JavaWeb中導(dǎo)出excel文件的簡(jiǎn)單方法

    下面小編就為大家?guī)硪黄狫avaWeb中導(dǎo)出excel文件的簡(jiǎn)單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10
  • Spring Boot 2.4新特性減少95%內(nèi)存占用問題

    Spring Boot 2.4新特性減少95%內(nèi)存占用問題

    這篇文章主要介紹了Spring Boot 2.4新特性減少95%內(nèi)存占用問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12

最新評(píng)論

烟台市| 华安县| 吉林市| 涡阳县| 阳曲县| 普定县| 麦盖提县| 高要市| 靖安县| 汉阴县| 聂拉木县| 昌江| 义马市| 台南市| 岢岚县| 邵阳县| 贵南县| 宜丰县| 井冈山市| 塘沽区| 诸暨市| 玉门市| 沁源县| 龙井市| 莱阳市| 阳谷县| 铜山县| 宜阳县| 灵宝市| 昆山市| 宁安市| 静安区| 南皮县| 井陉县| 宜城市| 通化市| 南岸区| 万安县| 绥芬河市| 左贡县| 淮滨县|