mybatis-plus代码生成器使用和代码
生活随笔
收集整理的這篇文章主要介紹了
mybatis-plus代码生成器使用和代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在springboot項目中第一次用這個,試了一下,能成功啟動和生成文件但目前還有問題,先記錄一下:
依賴
pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>mabatis-plus</artifactId><version>0.0.1-SNAPSHOT</version><name>mabatis-plus</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId><version>2.4.2</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>數據庫配置
表:
表結構:
代碼自動生成的配置
CodeGenerator.java:
MabatisPlusApplication.java:```java package com.quickkill.lezijiekill.util; import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.core.toolkit.StringPool;import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.GlobalConfig;import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.*;import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import org.apache.commons.lang3.StringUtils;import java.util.*;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.setAuthor("hehe"); //打開輸出目錄gc.setOpen(false); //xml開啟 BaseResultMapgc.setBaseResultMap(true); //xml 開啟BaseColumnListgc.setBaseColumnList(true); //日期格式,采用Dategc.setDateType(DateType.ONLY_DATE);mpg.setGlobalConfig(gc); // 數據源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://localhost:3308/data1?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia" +"/Shanghai");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername("heziyi");dsc.setPassword("123456");mpg.setDataSource(dsc);// 包配置PackageConfig pc = new PackageConfig();pc.setParent("com.quickkill.lezijiekill").setEntity("pojo").setMapper("mapper").setService("service").setServiceImpl("service.impl").setController("controller");mpg.setPackageInfo(pc); // 自定義配置InjectionConfig cfg = new InjectionConfig() {@Overridepublic void initMap() { // to do nothingMap<String, Object> map = new HashMap<>();map.put("date1", "1.0.0");this.setMap(map);}}; // 如果模板引擎是 freemarkerString templatePath = "/templates/mapper.xml.ftl"; // 如果模板引擎是 velocity // String templatePath = "/templates/mapper.xml.vm"; // 自定義輸出配置List<FileOutConfig> focList = new ArrayList<>(); // 自定義配置會被優先輸出focList.add(new FileOutConfig(templatePath) {@Overridepublic 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().setEntity("templates/entity.java").setMapper("templates/mapper.java").setService("templates/service.java").setServiceImpl("templates/serviceImpl.java").setController("templates/controller.java");templateConfig.setXml(null);mpg.setTemplate(templateConfig); // 策略配置StrategyConfig strategy = new StrategyConfig(); //數據庫表映射到實體的命名策略strategy.setNaming(NamingStrategy.underline_to_camel); //數據庫表字段映射到實體的命名策略strategy.setColumnNaming(NamingStrategy.underline_to_camel); //lombok模型strategy.setEntityLombokModel(true); //生成 @RestController 控制器 // strategy.setRestControllerStyle(true);strategy.setInclude(scanner("表名,多個英文逗號分割").split(","));strategy.setControllerMappingHyphenStyle(true); //表前綴strategy.setTablePrefix("t_");mpg.setStrategy(strategy);mpg.setTemplateEngine(new FreemarkerTemplateEngine());mpg.execute();} }運行,輸入表名t_user
可以看到相應的目錄下生成了文件:
總結
以上是生活随笔為你收集整理的mybatis-plus代码生成器使用和代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记2深度学习 梯度和梯度法
- 下一篇: 【笔记】opencv图像轮廓 获得平均灰