mybatis-plus整合springboot自動生成檔案
mybatis-plus整合springboot自動生成dao層
匯入依賴
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
配置檔案
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@EnableTransactionManagement
@MapperScan("com.markerhub.mapper")
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor(){
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
return paginationInterceptor;
}
}
執行程式碼
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
// 演示例子,執行 main 方法控制檯輸入模組表名回車自動生成對應專案目錄中
public class CodeGenerator {
/**
* <p>
* 讀取控制檯內容
* </p>
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("請輸入" + tip + ":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotEmpty(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("請輸入正確的" + tip + "!");
}
public static void main(String[] args) {
// 程式碼生成器
AutoGenerator mpg = new AutoGenerator();
// 全域性配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
// gc.setOutputDir("D:\\test");
gc.setAuthor("雜貨店的阿猿");
gc.setOpen(false);
// gc.setSwagger2(true); 實體屬性 Swagger2 註解
gc.setServiceName("%sService");
mpg.setGlobalConfig(gc);
// 資料來源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://資料庫ip:3306/vueblog?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC");
// dsc.setSchemaName("public");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("使用者");
dsc.setPassword("密碼");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(null);
pc.setParent("cn.zzzyuan");
mpg.setPackageInfo(pc);
// 自定義配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
// 如果模板引擎是 freemarker
String templatePath = "/templates/mapper.xml.ftl";
// 如果模板引擎是 velocity
// String templatePath = "/templates/mapper.xml.vm";
// 自定義輸出配置
List<FileOutConfig> focList = new ArrayList<>();
// 自定義配置會被優先輸出
focList.add(new FileOutConfig(templatePath) {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定義輸出檔名 , 如果你 Entity 設定了前字尾、此處注意 xml 的名稱會跟著發生變化!!
return projectPath + "/src/main/resources/mapper/"
+ "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setXml(null);
mpg.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
strategy.setInclude(scanner("表名,多個英文逗號分割").split(","));
strategy.setControllerMappingHyphenStyle(true);
strategy.setTablePrefix("t_"); //我表名都是t_xxx
mpg.setStrategy(strategy);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
}
}
執行上述程式碼,輸入你的表名以逗號分隔
t_xxx,t_xxx,t_xxx
相關文章
- SpringBoot整合mybatis-plus,pagehelper以及程式碼自動生成Spring BootMyBatis
- springboot整合mybatis自動生成框架Spring BootMyBatis框架
- SpringBoot整合MyBatis-Plus框架(程式碼生成器)Spring BootMyBatis框架
- SpringBoot整合系列–整合MyBatis-plusSpring BootMyBatis
- SpringBoot整合Mybatis-PlusSpring BootMyBatis
- 在Eclipse 下整合ndk 自動編譯生成so檔案Eclipse編譯
- SpringBoot | 3.3 整合MyBatis-PlusSpring BootMyBatis
- SpringBoot整合Mybatis-Plus(SpringBoot3)Spring BootMyBatis
- 自動生成檔案層級樹類
- 自動生成Mybatis的Mapper檔案MyBatisAPP
- 【mybatis-plus】主鍵id生成、欄位自動填充MyBatis
- SpringBoot系列——MyBatis-Plus整合封裝Spring BootMyBatis封裝
- Console 自動生成 Model 檔案
- MyBatis-plus 自動生成 條件構造器 QueryWrapperMyBatisAPP
- Springboot整合Mybatis-plus(比較詳細)Spring BootMyBatis
- 記錄springboot 3.3.5 版本整合 mybatis-plusSpring BootMyBatis
- Springboot整合MongoDB儲存檔案、讀取檔案Spring BootMongoDB
- SpringBoot第七篇:整合Mybatis-PlusSpring BootMyBatis
- springboot整合mybatis-plus啟動的時候出現propertyplacehlderAutoConfigurtionSpring BootMyBatis
- 如何使用jenkins自動生成springboot專案的docker映象JenkinsSpring BootDocker
- webpack4 系列教程(十三):自動生成HTML檔案WebHTML
- 一個自動遞增生成目錄和檔案的cop檔案類
- springboot擴充套件配置檔案自動載入Spring Boot套件
- SpringBoot整合Nacos自動重新整理配置Spring Boot
- Makefile 自動生成標頭檔案的依賴關係
- 專案整合seata和mybatis-plus衝突問題解決方案:(分頁外掛失效, 自動填充失效, 自己注入的id生成器失效 找不到mapper檔案解決方案)MyBatisAPP
- tep整合mitmproxy錄製流量自動生成用例MIT
- 無需手寫,自動生成Flutter/Dart實體類檔案FlutterDart
- 使用mybatis-generator自動生成model、dao、mapping檔案MyBatisAPP
- 使用POI生成Excel檔案,可以自動調整excel列寬Excel
- 利用nodejs寫一個自動生成vue元件檔案的cliNodeJSVue元件
- Springboot 專案通過 gitlab CI/CD 整合 k8s 自動部署Spring BootGitlabK8S
- SpringBoot中使用Mybatis-plus整合PageHelper分頁外掛踩坑Spring BootMyBatis
- SpringBoot邊學邊用(二)SpringBoot 整合 Mybatis(xml檔案形式)Spring BootMyBatisXML
- mybatis-plus程式碼生成MyBatis
- SpringBoot整合Jasypt安全框架,配置檔案內容加密Spring Boot框架加密
- SpringBoot資料訪問之整合Mybatis配置檔案Spring BootMyBatis
- 基於Vue-Cli 打包自動生成/抽離相關配置檔案Vue