国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解Mybatis逆向工程中使用Mysql8.0版本驅動遇到的問題

詳解Mybatis逆向工程中使用Mysql8.0版本驅動遇到的問題

2021-06-03 11:36Dmego的博客 Java教程

今天在使用 8.0.12 版的 mysql 驅動時遇到了各種各樣的坑。這篇文章主要介紹了詳解Mybatis逆向工程中使用Mysql8.0版本驅動遇到的問題,感興趣的小伙伴們可以參考一下

前言

今天在使用 8.0.12 版的 mysql 驅動時遇到了各種各樣的坑,在使用 jdbc 連接上遇到的問題可以參考我的上一篇博客。我在使用 mybatis 逆向工程生成各種 mapper , pojo , dao 時,遇到了一個困惑我好幾個小時的錯誤,這個錯誤是

result maps collection already contains value for baseresultmap

產生這個錯誤可能有各種原因。但是這里我只說我的原因及解決過程。

初步探索

我在網上查閱了大量的博客文章,對于產生這類錯誤的原因最多的是:生成了多次 mapper , dao 以及 pojo 文件。也就是多次運行了生成這些文件的方法。造成 xxxmapper.xml 中出現了重復的 resultmap 。但是我這里把這些文件刪除后,再重新生成還是會報這個錯。所以肯定不是多次生成的問題。

于是我打開了出現問題的那個 mapper.xml 文件,搜索 baseresultmap 發現其作為 resultmap 的 id 居然出現了三次,還有很多其他的 sql 標簽的 id 也有很多重復的。我將這些重復的都刪除,再次運行,成功了,沒有出現錯誤。而且利用這些生成的 mapper 做后面的功能也沒有任何問題。這就非常奇怪,為什么會多生成這些代碼呢,我繼續在網上找相關的文章。

深入探索

好不容易找到一篇博客中提到 :升級到 mysql 8.0 驅動后的使用 mybatis 逆向工程生成的文件或不一樣,具體的怎么不一樣也沒有說。看到這里,我猜會不會是驅動版本造成的,于是我將 pom.xml 里的 mysql 驅動版本調整到了 5.1.10。刪干凈文件,再次生成后,發現之前出錯的那個 mapper.xml 里的 以 baseresultmap 作為 id 的 resultmap 只有一個了,其他的 resultmap 中 id 也是唯一的。為了檢驗這次生成的到底有沒有用。我啟動 tomact 運行程序。發現正常啟動,后續的功能也沒有問題。

最終解決

但是如果使用 5.0 版本的驅動連接 mysql 8.0 在項目中可能會遇到難以預料的問題,所以我并沒有就此將驅動版本改變。我繼續在網上通過換各種關鍵詞來搜尋解決方案。幾個小時過去了,還是沒有任何結果。最后被迫去看了 [mybatis generator] 的官方英文文檔。中文文檔已經看過了,沒有找到相關的內容。在閱讀英文文檔中,我在database specific information (使用注意事項)下面的 mysql使用注意事項 中似乎找到了相關的內容。其原內容如下:

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:

?
1
2
3
4
<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版,您可能會注意到生成器嘗試為mysql信息模式(sys,information_schema,performance_schema等)中的表生成代碼。這可能不是您想要的! 要禁用此行為,請將屬性“nullcatalogmeanscurrent = true”添加到jdbc

的確,我發現使用 8.0 版的驅動比使用 5.0 版時不僅 mapper.xml 文件中多生成了好多代碼,而且還多生成了一個 xxxwithblobs 的 pojo 文件。雖然還是不太理解上面說的問題,但是我還是添加 nullcatalogmeanscurrent 屬性。然后重新生成了相關的 mapper , pojo , dao 。打開之前出現問題的 mapper.xml 文件,和使用 5.0 版的驅動生成的代碼一樣,以 baseresultmap 作為 id 的 resultmap 只有一個了。再次啟動 tomact,成功啟動,沒有任何問題,測試其他業務功能,也沒有任何問題。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://dmego.me/2018/10/10/mysql8-mybatis-geneator.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 超碰在线免费福利 | 黑人巨大精品欧美黑白配亚洲 | 欧美视频一二三区 | 毛片在线一区二区观看精品 | 亚洲在线播放 | 国产一区二区三区在线观看免费 | 精品成人免费一区二区在线播放 | 天天干天天干天天干天天射 | 另类亚洲专区 | 黄色成人在线 | 国产精品初高中精品久久 | 成人免费在线视频播放 | jizz中国zz女人18高潮 | 婷婷天堂 | 精品入口麻豆88视频 | 欧美透逼 | 久久黄色 | 美女视频一区 | 夜夜久久 | 国产成人精品一区二区三区四区 | 亚洲高清视频在线 | 狠狠色狠狠色合久久伊人 | 国产成人综合视频 | 欧美日韩一二三区 | 色国产精品 | 成人免费一区二区三区视频软件 | 天天操天天干天天爽 | 精品福利av导航 | 性欧美另类 | 精品在线一区二区 | 国产精品美女久久久久久久网站 | 电影一级毛片 | 亚洲视频一区二区 | 一区二区三区在线播放 | 最新国产视频 | 91视频 - 88av| 国产精品一区二区不卡 | 亚洲一区二区福利 | 亚洲视频精品 | 91精选| 亚洲视频一区在线观看 |