1. 程式人生 > >關於使用MyBatis-Generator時自定義註解生成器的一些問題

關於使用MyBatis-Generator時自定義註解生成器的一些問題

當MyBatis-Generator和通用Mapper整合時預設的註解生成器就不是org.mybatis.generator.internal.DefaultCommentGenerator,而是tk.mybatis.mapper.generator.MapperCommentGenerator,這是通用Mapper自帶的註解生成器,裡面主要是在原先的註釋上新增一些有關資料庫的註釋,例如@Column,@ID等等,有興趣的可以自己去檢視。
所以generatorConfig.xml檔案裡的 commentGenerator 標籤就會變得沒用了,所以這個時候想自定義註解生成器就有點麻煩了。

若想自定義註解生成器的話,最簡單直接的方法就是整合重寫通用Mapper這個外掛類(注意這裡的重寫是把這個外掛類MapperPlugin的程式碼完全複製到一個全新的類上),然後在裡面新增一個屬性 commentGeneratorType

//註釋生成器類
private String commentGeneratorType;

然後在 setProperties 方法上新增如下程式碼

        //設定自定義的註釋生成器
        commentGeneratorType =  this.properties.getProperty("commentGeneratorType");
        if (!StringUtil.isEmpty(commentGeneratorType)) {
            commentCfg = new CommentGeneratorConfiguration();
commentCfg.setConfigurationType(commentGeneratorType); context.setCommentGeneratorConfiguration(commentCfg); }

另外generatorConfig.xml檔案配置的 plugin 要修改為

       <!--使用通用Mapper外掛-->
       <plugin type="com.meng.mybatis.common.MyCommonMapperPlugin">
            <!-- 生成的Mapper都要繼承的BaseMapper類 -->
<property name="mappers" value="com.meng.mybatis.common.MyBaseMapper"/> <!-- 設定自定義註釋生成器,預設是 MapperCommentGenerator --> <property name="commentGeneratorType" value="com.meng.mybatis.common.MyMapperCommentGenerator"/> </plugin>

你可以通過修改commentGeneratorType屬性來設定自定義的註釋生成器,可以通過繼承預設的註解生成器MapperCommentGenerator ,修改裡面的方法,生成你喜歡的註釋。

還有一點要注意的是如果你是使用maven外掛來執行mybatis-generator,需要把這些你自定義的這些類放到把成jar包,並且在mybatis-generator-maven-plugin外掛中新增相關依賴,否則會報找不到這些類的錯誤。
而使用Java方式執行MBG可以避免該問題。

本人新手,若是哪裡說錯了,還請大神們指教指教。

轉載請附上地址。

相關推薦

關於使用MyBatis-Generator定義註解生成器一些問題

當MyBatis-Generator和通用Mapper整合時預設的註解生成器就不是org.mybatis.generator.internal.DefaultCommentGenerator,而是tk.mybatis.mapper.generator.M

使用mybatis-generator新增定義外掛提示無法例項化外掛類 Cannot instantiate object of type

報錯資訊: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate failed: Cannot instantiate object

使用mybatis-generator新增定義分頁外掛提示無法例項化外掛類

import org.mybatis.generator.api.CommentGenerator; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.PluginAdapter; impo

切面+定義註解一些玩法

control utf8mb4 tsig string trace 無需 方便 函數 組合   這篇文章主要記錄一下切面+自定義註解在實際中的一些玩法。切面+自定義註解的玩法可能有很多,這篇主要說一下實現以下兩個功能:   1.@HttpLog自動記錄Http請求日誌   

Spring+SpringMVC+Mybatis 利用AOP定義註解實現可配置日

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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 5

springboot定義註解校驗出現的異常

異常資訊: javax.validation.ConstraintDefinitionException: HV000074 原因: 在約束註釋中它是關於groups()和payload()缺失的,只需新增這兩行就可以了: Class<?>[] groups() de

Mybatis定義註解實現DAO層--實現DAO層介面

  Java新增自定義註解:https://www.cnblogs.com/0xcafedaddy/p/6095187.html 1、自定義一個註解@MybatisRepository用作dao掃描 /** * @author cao * @description 前沿my

java定義註解mybatis 外掛 實現資料庫 分庫分表

一、自定義註解實現分庫 為什麼會有資料庫切庫一說 首先,許多專案都有主庫與從庫,有的主庫後面甚至會有很多個從庫,主從庫之間的通常同步也很快,這為資料庫切庫提供了一個基礎,因為可以去不同的資料庫查詢,得到相同的結果(如果不同的資料庫是完全不同的,這個不在我們這篇文章討論的範圍之內,那個屬於讓專

定義註解之執行註解(RetentionPolicy.RUNTIME)

前面有提到註解按生命週期來劃分可分為3類: 1、RetentionPolicy.SOURCE:註解只保留在原始檔,當Java檔案編譯成class檔案的時候,註解被遺棄; 2、RetentionPolicy.CLASS:註解被保留到class檔案,但jvm載入class檔案

Android中的定義註解(反射實現-執行註解

預備知識: Java註解基礎 Java反射原理 Java動態代理 一、佈局檔案的註解 我們在Android開發的時候,總是會寫到setContentView方法,為了避免每次都寫重複的程式碼,我們需要使用註解來代替我們做這個事情,只需要在類Activity上

Java定義註解和執行靠反射獲取註解

<span style="font-family:SimHei;font-size:18px;color:#663300;"><strong><span class="bh_code_a_Java_keywords">public</span> <span

Hibernate 和 JPA 註解方式定義ID生成器

/** * Test.java * 實體類定義和配置 */ package com.saving.ecm.resource.entity; import javax.persistence.Column; import javax.persistence.Enti

定義註解之編譯註解(RetentionPolicy.CLASS)(二)——JavaPoet

在使用編譯時註解時,需要在編譯期間對註解進行處理,在這裡我們沒辦法影響程式的執行邏輯,但我們可以進行一些需處理,比如生成一些功能性程式碼來輔助程式的開發,最常見的是生成.java 原始檔,並在程式中可以呼叫到生成的檔案。這樣我們就可以用註解來幫助我們處理一些固定邏輯的重複性

使用Spring配置shiro,定義Realm中屬性無法使用註解注入解決辦法

先來看問題 糾結了幾個小時終於找到了問題所在,因為shiro的realm屬於Filter,簡單說就是初始化realm時,spring還未載入相關業務Bean,那麼解決辦法就是將spring

J2EE專案使用定義註解實現基於SpringMVC + Mybatis + Mysql的讀寫分離

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/

Java定義註解反射校驗數據

sda new out 格式 是否 本地 imp 使用範圍 數據類型 package com.annotations.ecargo; import java.lang.annotation.ElementType; import java.lang.annotati

java定義註解

不包含 doc 1.2 color 子類 局部變量 ati 包含 ant Java註解是附加在代碼中的一些元信息,用於一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能。註解不會也不能影響代碼的實際邏輯,僅僅起到輔助性的作用。包含在 java.lang.annot

hibernate validation內置註解定義註解

ons private from decimal 最重要的 con name cts mva 1 Bean Validation 中內置的 constraint 2 @Null 被註釋的元素必須為 null 3 @NotNull

AOP通過反射獲取定義註解

ram tar .get tty sig runt type log eth 自定義註解: @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component

定義註解的簡單使用

microsoft report val 取數 nds 表示 package 自定義註解 tco 框架開發時不免會涉及到配置文件,如properties、xml以及txt等格式的文件。這裏介紹框架中通過自定義註解的形式簡化配置: 根據需求編寫自定