一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

服務器之家 - 編程語言 - Java教程 - Mybatis Generator 獲取不到字段注釋的解決

Mybatis Generator 獲取不到字段注釋的解決

2021-12-23 13:22一頭磕在鍵盤上 Java教程

這篇文章主要介紹了Mybatis Generator 獲取不到字段注釋的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Mybatis Generator 獲取不到字段注釋

環境限制,暫時只提供Oracle和Mysql的解決方法,其它數據庫如果遇到同樣問題,原理是一樣的,具體就看該數據庫應當去配置哪個屬性.

解決方法

下面的配置均指的是Mybatis Generator 的配置文件(一般是叫generatorConfig.xml)的配置:

Oracle 數據庫

?
1
2
3
4
5
<jdbcConnection driverClass="${driver}"
    connectionURL="{url}" userId="${username}" password="${password}">
    <!-- 針對oracle數據庫 -->
    <property name="remarksReporting" value="true"></property>
</jdbcConnection>

MySql 數據庫

方法1

?
1
2
3
4
5
<jdbcConnection driverClass="${driver}"
    connectionURL="{url}" userId="${username}" password="${password}">
    <!-- 針對mysql數據庫 -->
    <property name="useInformationSchema" value="true"></property>
</jdbcConnection>

方法2

mysql的connectionURL中添加 useInformationSchema=true.大體上就是:

?
1
connectionURL="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&useInformationSchema=true"

兩種方法任選其一.

詳解

MBG訪問數據庫也是通過JDBC進行,而通過JDBC連接Oracle、Mysql(其它數據庫暫不清楚)時,想獲取到表及字段注釋是需要額外設置一些連接屬性的.一般大體上都是如下的代碼(以Oracle為例):

?
1
2
3
4
Properties props =newProperties();
props.put("remarksReporting","true");//Oracle
dbConn = DriverManager.getConnection(url, props);
DatabaseMetaData dbmd = dbConn.getMetaData();

這樣通過JDBC就能獲取到表或者字段的注釋了.

那么在MBG中怎么設置呢?總不能去改源碼吧.其實MBG自身已經提供了解決方法.

我們先來看下MBG連接數據庫的代碼,可以在org.mybatis.generator.internal.JDBCConnectionFactory中找到:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//以下代碼來自Mybatis Generator 1.3.5
/**
 * This constructor is called when there is a JDBCConnectionConfiguration
 * specified in the configuration.
 *
 * @param config
 */
public JDBCConnectionFactory(JDBCConnectionConfiguration config) {
    super();
    userId = config.getUserId();
    password = config.getPassword();
    connectionURL = config.getConnectionURL();
    driverClass = config.getDriverClass();
    otherProperties = config.getProperties();//注意此行
}
public Connection getConnection()
        throws SQLException {
    Driver driver = getDriver();
    Properties props = new Properties();
    if (stringHasValue(userId)) {
        props.setProperty("user", userId); //$NON-NLS-1$
    }
    if (stringHasValue(password)) {
        props.setProperty("password", password); //$NON-NLS-1$
    }
    props.putAll(otherProperties);//注意此行
    Connection conn = driver.connect(connectionURL, props);
    if (conn == null) {
        throw new SQLException(getString("RuntimeError.7")); //$NON-NLS-1$
    }
    return conn;
}

通過上面代碼(尤其是我加了注意此行注釋的兩行代碼)我們可以看到,MBG在建立連接時,是把JDBCConnectionConfiguration中的所有properties給設置進去了.那么顯然我們只需要找到在哪配置這些properties就行了.

JDBCConnectionConfiguration對應到XML配置里就是jdbcConnection節點.

再來看看官方的使用文檔,官方文檔關于jdbcConnection (點擊查看) 一節中 <property>子元素的說明:

<property> (0..N) Note: any properties specified here will be added to the properties of the JDBC driver.

那么在配置文件中我們如下改動即可:

?
1
2
3
4
5
<jdbcConnection driverClass="${driver}"
    connectionURL="{url}" userId="${username}" password="${password}">
    <!-- 針對oracle數據庫 -->
    <property name="remarksReporting" value="true"></property>
</jdbcConnection>

關于如何生成自定義注釋,參見 mybatis-generator自定義注釋生成

mybatis-generator生成數據表中注釋

1.克隆項目

打jar包

git clone https://github.com/backkoms/mybatis-generator-comments.git

編譯打包,install到本地或delopy私服庫中均可。

2.修改pom文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<plugin>
       <groupId>org.mybatis.generator</groupId>
       <artifactId>mybatis-generator-maven-plugin</artifactId>
       <version>${plugins-mybatis-generator.version}</version>
       <configuration>
           <verbose>true</verbose>
           <overwrite>true</overwrite>
       </configuration>
       <dependencies>
           <dependency>
               <groupId>com.haier.hairy</groupId>
               <artifactId>mybatis-generator-core</artifactId>
               <version>1.0.1</version>
           </dependency>
       </dependencies>
 </plugin>

3.配置對應的解析生成包

?
1
2
3
4
5
<commentGenerator type="org.mybatis.generator.internal.CustomeCommentGenerator">
     <property name="javaFileEncoding" value="UTF-8"/>
     <property name="suppressDate" value="true" />
     <property name="suppressAllComments" value="false" />
</commentGenerator>

執行命令:mvn mybatis-generator:generate

查看執行生成文件

Mybatis Generator 獲取不到字段注釋的解決

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_21251983/article/details/52849079

延伸 · 閱讀

精彩推薦
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
主站蜘蛛池模板: 欧美日韩国产另类一区二区三区 | 教室里老师好紧h | 亚洲va欧美va国产va天堂影 | 美女把小内内脱个精光打屁屁 | 亚洲ⅴa偷拍在线影院 | 久久受www免费人成_看片中文 | 成年人免费观看 | 毛茸茸的大逼 | 特黄特级毛片免费视 | 亚洲美色综合天天久久综合精品 | 日韩欧美在线一区二区三区 | 亚洲国产货青视觉盛宴 | xxy中国厕所| nxgx在线观看国产中文 | 国产香蕉97碰碰久久人人 | 日本动漫黄网站在线观看 | 国色天香社区视频免费高清在线观看 | 亚洲欧美一区二区久久 | 久久国产精品二区99 | 日本人成在线视频免费播放 | 国产成人刺激视频在线观看 | 日韩中文字幕视频在线观看 | 天天干天天色综合网 | 2015小明台湾永久区域免费 | 国产精品污双胞胎在线观看 | 无遮18禁在线永久免费观看挡 | 午夜精品久视频在线观看 | 办公室强行丝袜秘书啪啪 | 农村妇女野外牲交一级毛片 | 外女思春台湾三级 | 花房乱爱在线观看 | 色狠狠成人综合网 | 网站久久 | 日韩高清一区二区 | 30分钟的高清视频在线观看 | 99在线免费观看 | 欧美日韩精品一区二区三区视频在线 | 亚洲是图你懂的 | 妹妹你插的我好爽 | 欧美va天堂va视频va在线 | 国亚洲欧美日韩精品 |