MyBatisのプラスジェネレータの設定

参照のみに使用し、プラグインの靴のために保存を行うように構成されたMyBatisのプラスのコードジェネレータを使用してこの記事。
内部のデフォルトの設定の多くがありますが、あなたは研究のソースの下に子供用の靴で性的な関心を持つことができます。
PS:公式文書より完全http://mp.baomidou.com/

パッケージcom.kichun.ucenter.service。

輸入com.baomidou.mybatisplus.generator.AutoGenerator。
輸入com.baomidou.mybatisplus.generator.InjectionConfig。
輸入 com.baomidou.mybatisplus.generator.config *。;
輸入com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert。
輸入com.baomidou.mybatisplus.generator.config.po.TableInfo;
輸入com.baomidou.mybatisplus.generator.config.rules.DbColumnType。
輸入com.baomidou.mybatisplus.generator.config.rules.DbType。
輸入com.baomidou.mybatisplus.generator.config.rules.NamingStrategy。
インポートcom.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; 

インポートのjava.io.File;
 インポート java.utilのクラス*。; 

/ ** 
 * 2018年6月1日ON wangqichangによって作成されます。
 * / 
パブリック クラスMabatisPlusGenerator { 

    // メイクどこプロジェクトパス
    プライベート 静的な文字列baseProjectPath = "D:\\ \\ strandrd_official_website Gitのkichun \\ \\ \\ kichun-ucenterのkichun-ucenter-エンティティ" ; 

    // 基本的なパッケージ名
    プライベート 静的な文字列basePackage =「com.kichun.ucenter " ;
     // 作者
    プライベート 静的な文字列はauthorName =" wangqichang " ;
     //テーブル名生成する
    プライベート 静的文字列[] = {テーブル「t_role」、「t_resource」、「t_role_resource」、「t_user_roleを」};
     // テーブルプレフィックス
    プライベート 静的文字列の接頭辞=「T_」; 

    // データベース4つの要素が配置された
    プライベート 静的な文字列DRIVERNAME = "net.sf.log4jdbc.DriverSpy" ;
     プライベート 静的な文字列のURL = "はjdbc:log4jdbc:MySQLの://127.0.0.1:3306 / =真kichun_dev useUnicode&characterEncoding = UTF8&zeroDateTimeBehavior = = convertToNull&allowMultiQueriesに本当か?" ;
     プライベート 静的な文字列usernameは=「あなたを教えていません」プライベート 静的な文字列のパスワード=「パスワードはあなたを教えてくれありません」


    公共の 静的な 無効メイン(文字列[] args)を{ 


        自動発生ゲン = 新しい新しい自動発生(); 

        / ** 
         *データベースの設定
         * / 
        gen.setDataSource(新新DataSourceConfig()
                .setDbType(DbType.MYSQL)
                .setDriverName(DRIVERNAME)
                .setUrl( URL)
                .setUsername(ユーザー名)
                .setPassword(パスワード)
                .setTypeConvert(新新MySqlTypeConvert(){
                     // カスタム型変換テーブル列[、オプション] 
                    @Override
                     公衆DbColumnType processTypeConvert(文字列FIELDTYPE){ 
                        するSystem.out.println( "转换类型:" + FIELDTYPE)。
                        // (fieldType.toLowerCase())( "TINYINT"を含む。)であれば{
                         //     DbColumnType.BOOLEANを返します。
                        // } 
                        を返す スーパー.processTypeConvert(FIELDTYPEを)。
                    } 
                }))。

        / ** 
         *全局配置
         * / 
        gen.setGlobalConfig(GlobalConfig()
                .setOutputDir(baseProjectPath + "/ srcに/メイン/ javaの")// 输出目录
                .setFileOverrideは(真の// ファイルに上書きするかどうか 
                (.setActiveRecordをtrueに// オープンのActiveRecordモード 
                .setEnableCache(// XMLの二次キャッシュ 
                .setBaseResultMap(trueに// ResultMapsについてXMLがある 
                (.setBaseColumnList trueには// XML columList 
                。 (setOpen falseに// 開いているフォルダを生成した後
                .setAuthor(はauthorNameは)
                 // カスタムファイル名は、%sの注意実体属性テーブルが自動的に入力され!
                .setMapperName( "%sMapper" 
                .setXmlName( "%sMapper" 
                .setServiceName( "%Sservice" 
                .setServiceImplName( "%sServiceImpl" 
                .setControllerName( "%sController" 
        ); 

        / ** 
         *ポリシー設定
         / * 
        gen.setStrategy(新新StrategyConfig()
                 // .setCapitalMode(真の)// という名前のグローバル資本
                 // 真)に.setDbColumnUnderline(// グローバル下線付きの名前 
                。setTablePrefix( String []型{プレフィックス})// ここでは、あなたのテーブルプレフィックス変更することができます 
                .setNaming(NamingStrategy.underline_to_camel)// テーブル生成戦略 
                .setInclude(テーブル)// テーブルを生成する必要 
                .setRestControllerStyle(真の//を。 setExclude(新しい新しいString [] { "テスト"})// 除外生成されたテーブル
                 // カスタムエンティティの親
                 // .setSuperEntityClass( "com.baomidou.demo.TestEntity")
                 // カスタムエンティティ、パブリックフィールド
                 // .setSuperEntityColumns(新しい新しいString [] { "test_id"})
                 // .setTableFillList(tableFillList)
                // カスタムマッパースーパークラスのデフォルトBaseMapper
                 // .setSuperMapperClass( "com.baomidou.mybatisplus.mapper.BaseMapper")
                 // カスタムサービスのスーパークラスのデフォルトIService
                 // .setSuperServiceClass( "com.baomidou.demo.TestService")
                 // カスタムサービス実装クラスの親クラスのデフォルトServiceImpl
                 // .setSuperServiceImplClass( "com.baomidou.demo.TestServiceImpl")
                 // カスタムコントローラスーパー
                 // .setSuperControllerClass( "com.kichun。"のpackageName + +。「コントローラ。 AbstractController「)
                 // 定数フィールド(デフォルトはfalseを生成するかどうか[エンティティ])
                 //;最終的な静的文字列ID =パブリック「test_id」
                 // .setEntityColumnConstant(真の)
                 // []エンティティモデルビルダーかどうか(デフォルトはfalse)
                 // ユーザー(文字列名){名前= this.nameのsetName公共、これを返します。 }
                 // (真の).setEntityBuilderModel
                 // [エンティティ]ロンボクモデル(デフォルトはfalse)の<a href=" "> https://projectlombok.org/ </a>の文献 
                .setEntityLombokModel(真の// ブール型プレフィックスフィールドを削除するかどうかに処理される
                 // .setEntityBooleanColumnRemoveIsPrefix(trueに)
                 //(真の).setRestControllerStyle
                 // .setControllerMappingHyphenStyle(真の)
        ); 

        / ** 
         *パッケージの構成
         * / 
        gen.setPackageInfo(新新PackageConfig()
                         // .setModuleName( "ユーザー") 
                        .setParent(basePackage)// カスタムパッケージのパス 
                        .setController( "コントローラ")// ここでは、デフォルトのWeb、コントローラのパッケージ名です 
                        .setEntity( "エンティティ" 
                        .setMapper( "DAO" 
                        .setService( "サービス"  
                        。setServiceImpl( "service.impl" 
                        .setXml( "マッパー" 
                        ); 

        / ** 
         *注射カスタム設定
         * / 
        // 注射カスタム構成は、VM cfg.abcに設定された値を使用することができます 
        = InjectionConfig ABCが新しい新InjectionConfig(){ 
            @Override 
            公共 無効initMap(){ 
                地図 <文字列、オブジェクトは、> =、地図新しい新しいのHashMap <>を(); 
                map.put( "ABC"、この .. .getConfig()getGlobalConfig()GETAUTHOR()+ " -mp " );
                 この.setMap(マップ); 
            } 
        }; 
        // カスタムファイル出力場所(オプション) 
        一覧<FileOutConfig> = fileOutList 新しい新しいのArrayList <> (); 
        fileOutList.add(新新 FileOutConfig( "/テンプレート/ mapper.xml.ftl" ){ 
            @Override 
            公共ストリングOUTPUTFILE(TableInfo TableInfo){
                 戻り baseProjectPath + "/ SRC /メイン/リソース/マッパーによって/" + tableInfo.getEntityName()+ "の.xml" ; 
            } 
        }); 
        abc.setFileOutConfigList(fileOutList)
        ゲン.setCfg(ABC); 

        / ** 
         *は、関連するエンジンを導入する必要性に依存して、デフォルトのテンプレートエンジンがVelocityTemplateEngineで指定します
          * / 
        gen.setTemplateEngineを(新新FreemarkerTemplateEngine()); 

        / ** 
         *テンプレートの設定
         * / 
        gen.setTemplate(
                // ルートディレクトリに調整閉じる発電デフォルトのXMLは、生成し
                新しい新しい(。setXml TemplateConfig()ヌル// カスタム構成テンプレートを、テンプレート/ソースを参照してもよいですMyBatisのプラス/ srcに/メイン/リソース/テンプレートのコピーを使用して
                 、// プロジェクトのsrc /テンプレートの下でメイン/リソース/ディレクトリに以下のように、テンプレート名は、カスタム設定することができます:
                 // .setController(「...」);
                 / / .setEntity( "... ");
                 // .setMapper(" ... ");
                 // .setXml(" ... ");
                 //.setService( "... ");
                 //.setServiceImpl( "..."); 
        ); 

        // 生成行う
        gen.executeを(); 
    } 
}

 

おすすめ

転載: www.cnblogs.com/huangjinyong/p/11234268.html