IDEA使用mybatis-generator及配上mysql8.0.3版本遇到的bug
1.添加插件,在pom文件的下的添加以下配置
<!-- mybatis-generator -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<configurationFile>
<!--這里是配置generatorConfig.xml的路徑
不寫(xiě)默認(rèn)在resources目錄下找generatorConfig.xml文件
-->
</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
</dependencies>
</plugin>
2.在resources下創(chuàng)建generatorConfig.xml,內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- context 是逆向工程的主要配置信息 -->
<!-- id:起個(gè)名字 -->
<!-- targetRuntime:設(shè)置生成的文件適用于那個(gè) mybatis 版本 -->
<context id="default" targetRuntime="MyBatis3">
<!--optional,指在創(chuàng)建class時(shí),對(duì)注釋進(jìn)行控制-->
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自動(dòng)生成的注釋 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--jdbc的數(shù)據(jù)庫(kù)連接 wg_insert 為數(shù)據(jù)庫(kù)名字-->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/wg_insert?useUnicode=true&characeterEncoding=utf-8&serverTimezone=UTC" userId="root"
password="123456"></jdbcConnection>
<!--非必須,類(lèi)型處理器,在數(shù)據(jù)庫(kù)類(lèi)型和java類(lèi)型之間的轉(zhuǎn)換控制-->
<javaTypeResolver>
<!-- 默認(rèn)情況下數(shù)據(jù)庫(kù)中的 decimal,bigInt 在 Java 對(duì)應(yīng)是 sql 下的 BigDecimal 類(lèi) -->
<!-- 不是 double 和 long 類(lèi)型 -->
<!-- 使用常用的基本類(lèi)型代替 sql 包下的引用類(lèi)型 -->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- targetPackage:生成的實(shí)體類(lèi)所在的包 -->
<!-- targetProject:生成的實(shí)體類(lèi)所在的硬盤(pán)位置 -->
<javaModelGenerator targetPackage="com.wglvzyx.mybatisredis.entity"
targetProject="src/main/java">
<!-- 是否允許子包 -->
<property name="enableSubPackages" value="false"/>
<!-- 是否對(duì)modal添加構(gòu)造函數(shù) -->
<property name="constructorBased" value="true"/>
<!-- 是否清理從數(shù)據(jù)庫(kù)中查詢(xún)出的字符串左右兩邊的空白字符 -->
<property name="trimStrings" value="true"/>
<!-- 建立modal對(duì)象是否不可改變 即生成的modal對(duì)象不會(huì)有setter方法,只有構(gòu)造方法 -->
<property name="immutable" value="false"/>
</javaModelGenerator>
<!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources">
<!-- 針對(duì)數(shù)據(jù)庫(kù)的一個(gè)配置,是否把 schema 作為字包名 -->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.wglvzyx.mybatisredis.dao" targetProject="src/main/java">
<!-- 針對(duì) oracle 數(shù)據(jù)庫(kù)的一個(gè)配置,是否把 schema 作為字包名 -->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- tableName是數(shù)據(jù)庫(kù)中的表名,domainObjectName是生成的JAVA模型名,后面的參數(shù)不用改,要生成更多的表就在下面繼續(xù)加table標(biāo)簽 -->
<table tableName="student" domainObjectName="Student"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
3.運(yùn)行,這里有兩種方法:
方法一:
在Intellij IDEA添加一個(gè)“Run運(yùn)行”選項(xiàng),使用maven運(yùn)行mybatis-generator-maven-plugin插件 (mybatis-generator:generate -e):

方法二:
在右側(cè)打開(kāi)maven面板在Plugins下打開(kāi)Mybatis-generator下的mybatis-generator:generate,右鍵Run Maven Build!

注意:
因?yàn)橛玫氖莔ysql-8.0.11
所以配置有所不同
主要就是新版本有新特性,首先,最新官方支持將com.mysql.jdbc.Driver改為com.mysql.cj.jdbc.Driver,此外mysql8.0是不需要建立ssl連接的,你需要顯示關(guān)閉,即url中的useSSL=false;最后你需要設(shè)置CST,CST可視為美國(guó)、澳大利亞、古巴或中國(guó)的標(biāo)準(zhǔn)時(shí)間。serverTimezone是設(shè)置時(shí)區(qū)的,大家可以查一下相關(guān)資料了解一下哦!
jdbc.driverClassName=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&serverTimezone=UTC jdbc.username=root jdbc.password=123456
到此這篇關(guān)于IDEA使用mybatis-generator及配上mysql8.0.3版本遇到的坑的文章就介紹到這了,更多相關(guān)IDEA使用mybatis-generator配上mysql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql count(*)分組之后IFNULL無(wú)效問(wèn)題
文章總結(jié):作者分享了在解決MySQL中根據(jù)發(fā)票ID和單位統(tǒng)計(jì)單位數(shù)量的問(wèn)題時(shí)遇到的困難及解決方法,通過(guò)使用IFNULL()函數(shù)和CASEWHEN都無(wú)法解決問(wèn)題,最終作者選擇了嵌套循環(huán)的方法來(lái)實(shí)現(xiàn)需求,并總結(jié)了經(jīng)驗(yàn)以供參考2024-11-11
mysql插入中文數(shù)據(jù)變成問(wèn)號(hào)的解決方案
這篇文章主要介紹了mysql插入中文數(shù)據(jù)變成問(wèn)號(hào)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Mysql中STR_TO_DATE函數(shù)使用(字符串轉(zhuǎn)為日期/時(shí)間值)
這篇文章主要給大家介紹了關(guān)于Mysql中STR_TO_DATE函數(shù)使用的相關(guān)資料,STR_TO_DATE函數(shù)的主要功能是字符串轉(zhuǎn)為日期/時(shí)間值,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
MySQL使用聚合函數(shù)進(jìn)行單表查詢(xún)
這篇文章主要介紹了MySQL使用聚合函數(shù)進(jìn)行單表查詢(xún),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
MySQL Packet for query is too large 問(wèn)題及解決方法
這篇文章主要介紹了MySQL Packet for query is too large 問(wèn)題及解決方法,需要的朋友可以參考下2018-05-05
mysql中取系統(tǒng)當(dāng)前時(shí)間,當(dāng)前日期方便查詢(xún)判定的代碼
今天在寫(xiě)一段查詢(xún)語(yǔ)句的時(shí)候,需要判定結(jié)束日期是不是大于當(dāng)前日期,一般情況下都是通過(guò)php判定日期,然后查詢(xún)。2011-12-12

