mybaisプラス統合springboot、自動コード生成。
最初のステップ:リーダーパケット:MyBatisのプラス発電機パッケージとパッケージFreeMarkerの
< 依存性> < 依存性> < のgroupId > com.baomidou </ のgroupId > < たartifactId > MyBatisのプラスジェネレータ</ たartifactId > < バージョン> 3.3.0 </ バージョン> </ 依存> < 依存性> < のgroupId > ORG。 FreeMarkerの</ groupIdを> < たartifactId > FreeMarkerの</ たartifactId > <バージョン> 2.3.29 </ バージョン> </ 依存関係> </ 依存関係>
ステップ2:クラスのコード生成:
パブリック クラス発生{ / ** * <P> *读取控制台内容 * </ P> * / パブリック 静的文字列スキャナ(文字列の先端){ スキャナスキャナ = 新しいスキャナ(System.in)。 StringBuilderのヘルプ = 新しいStringBuilderの(); help.append( "请输入" +ヒント+ ":" ); System.out.println(help.toString())。 もし(scanner.hasNext()){ 文字列IPT = scanner.next()。 もし(StringUtils.isNotEmpty(IPT)){ 返すIPTを; } } スロー 新しい新 MybatisPlusException(ヒント+ + "正しいを入力してください" "!" ); } 公共の 静的な 無効メイン(文字列[] args)を{ // コードジェネレータ 自動発生MPG = 新しい新しい自動発生(); // グローバル globalconfig GC = 新しい新しいglobalconfig(); 文字列ProjectPath =はSystem.getProperty( "はuser.dirは" );
//コードを生成する経路 gc.setOutputDir(ProjectPath + "/ bootstudy / SRC /メイン/ジャワ") ;
//作成 gc.setAuthor( "ヤン" ); gc.setOpen(falseに); // (真の)gc.setSwagger2;エンティティは、Swagger2注釈属性 mpg.setGlobalConfig(GC)を; // データソース構成 DataSourceConfig DSC = 新新DataSourceConfig();
/ /セットデータベース情報 dsc.setUrl( "JDBC:MySQLの:// localhostの:? 3306 / =真useUnicodeにブート&useSslオプション=偽&characterEncoding = UTF8&serverTimezone =アジア/上海での"); // dsc.setSchemaName( "パブリック"); dsc.setDriverName( "com.mysql.cj.jdbc.Driver" ); dsc.setUsername( "ルート" )。 dsc.setPassword("123456" ); mpg.setDataSource(DSC); //パッケージ構成 PackageConfig PC = 新新PackageConfig();
//設定モジュール名 pc.setModuleName(スキャナ( "モジュール名")); pc.setParent( "com.springboot.modules"); pc.setEntity( "モデル" )。 mpg.setPackageInfo(PC); // カスタム設定 InjectionConfig CFG = 新新InjectionConfig(){ @Override 公共 無効initMap(){ // 何もしないこと } }; // テンプレートエンジンはFreeMarkerのある場合 templatePath =「/テンプレート/文字列mapper.xml.ftl「; // テンプレートエンジンがベロシティであれば 、// 文字列templatePath =「/templates/mapper.xml.vm」; // カスタム出力設定 リスト< FileOutConfig> = focList 新しい新しいのArrayList <> (); // カスタム設定が優先的に出力することもできる focList.add(新新FileOutConfig(templatePath){ @Override パブリック文字列OUTPUTFILE(TableInfo TableInfo){ // あなたの場合、出力ファイル名をカスタマイズします実体が続く!!変わるここサフィックス名のxml注意前に設定 リターン ProjectPath +「/ bootstudy / srcに/メイン/リソース/マッパー/」+pc.getModuleName() + "/" + tableInfo.getEntityName()+ "マッパー" + StringPool.DOT_XML; } }); / * cfg.setFileCreate(新しい新しいIFileCreate(){ @Override 公共ブールisCreateは(ConfigBuilder configBuilder、のFileTypeたfileType 、文字列filePathには){ //作成したカスタムフォルダ必要があるかどうかを判断 checkDirを() "ディレクトリを作成するには、デフォルトのメソッドを呼び出す"; リターン偽の; } }); * / cfg.setFileOutConfigList(focList); mpg.setCfg(CFG)。 // 設定テンプレート TemplateConfig templateConfig = 新新TemplateConfig(); // のconfigureカスタム出力テンプレート // 指定したパスが.ftl / .vm取るしないように注意して、テンプレートから定義され、エンジンが自動的にテンプレートがに従って使用識別します //templateConfig.setEntity( "テンプレート/ entity2.java"); // templateConfig.setService(); // templateConfig.setController(); templateConfig.setXml(NULL ); mpg.setTemplate(templateConfig); // ポリシー構成 StrategyConfig戦略= 新しい新しいStrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); strategy.setColumnNaming(NamingStrategy.underline_to_camel); // strategy.setSuperEntityClass( "あなた自身の親エンティティは、無設定しないでください!"); strategy.setEntityLombokModel(trueに); strategy.setRestControllerStyle(真の); // 共通の親クラス // strategy.setSuperControllerClass(「あなた自身が親コントローラは、なし設定しないでください「);! // 親クラスのパブリックフィールドへの書き込み strategy.setSuperEntityColumns(」上記のid「); strategy.setInclude(スキャナ(」テーブル、複数のカンマ分割「) .split( "" )); strategy.setControllerMappingHyphenStyle(真の); strategy.setTablePrefix(pc.getModuleName() + "_" )。 mpg.setStrategy(戦略); mpg.setTemplateEngine(新しい新しいFreemarkerTemplateEngine()); mpg.execute(); } }
主なポイントは、ポイントは赤い印ことに注意することです:私はことを追加していないときに、データベース・エラーを設定するときCJ警告を追加し、MySQLのドライバ名を設定するとき&serverTimezone =アジア/上海、ない日のうちに報告されますが、影響はありません。
より多くのプロパティの設定は公式を参照することができます場合:https://mp.baomidou.com/config/generator-config.html#%E5%9F%BA%E6%9C%AC%E9%85%8D%E7%BD %AE
第三段階は、configureのFreeMarkerのに次のとおりです。
controller.java.ftl
controller.java.ftl
service.java.ftl
service.java.ftl
serviceImpl.java.ftl
serviceImpl.java.ftl
mapper.java.ftl
mapper.java.ftl
mapper.xml.ftl
mapper.xml.ftl
entity.java.ftl
entity.java.ftl
entity.kt.ftl
entity.kt.ftl
パス:
効果:稼働:
対応するモジュール:
シンプルな追加条件を変更して再検索コントローラ内部の層
コントローラ