Mybatis-11-MybatisPlus Generator代码生成器

简介: MybatisPlus也提供了代码生成器,并且更加厉害,能直接生成controller、service、mapper、xml等

    MybatisPlus也提供了代码生成器,并且更加厉害,能直接生成controller、service、mapper、xml等,并且还支持各种配置。详情可访问官网。

       今天来搭建一个MybatisPlus Generator工具项目。

一、引入pom依赖

<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="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.3.12.RELEASE</version><relativePath/></parent><groupId>com.xing</groupId><artifactId>springBootMybatisPlusGenerator</artifactId><version>0.0.1-SNAPSHOT</version><name>springBootMybatisPlusGenerator</name><description>MybatisPlusGeneratorDemoprojectforSpringBoot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!--https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.4</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.15</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency><dependency><groupId>org.realityforge.org.jetbrains.annotations</groupId><artifactId>org.jetbrains.annotations</artifactId><version>1.7.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build></project>

       我是用的是5天前出来的最新版本3.5.1,这个是一个分界线,历史版本的使用和3.5.1以后版本的使用不一样,详情可看官网。

二、直接上代码:

packagecom.xing.springBoot.mybatisPlus.generator;
importcom.baomidou.mybatisplus.generator.AutoGenerator;
importcom.baomidou.mybatisplus.generator.config.*;
importcom.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
importcom.baomidou.mybatisplus.generator.config.rules.DateType;
importjava.time.LocalDateTime;
importjava.time.format.DateTimeFormatter;
/*** 生成器*/publicclassMybatisPlusGenerator {
publicstaticvoidmain(String[] args) {
Stringurl="jdbc:mysql://localhost:3306/xinghua?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC";
// 新建数据源DataSourceConfigdataSourceConfig=newDataSourceConfig.Builder(url,"root","root").build();
// 获取项目路径StringprojectPath=System.getProperty("user.dir");
System.out.println("项目路径:->"+projectPath);
// 全局配置GlobalConfigglobalConfig=newGlobalConfig.Builder()
                .author("x")//作者                .outputDir(projectPath+"/src/main/java")//文件输出路径                .disableOpenDir()//禁止打开输出目录 不禁用的话在生成完毕后自动打开你项目路径下文件夹                .commentDate("yyyy-mm-dd")//指定注释日期格式化                .commentDate(LocalDateTime.now().format(DateTimeFormatter.ISO_DATE)) // 也是注释日期//数据库时间类型到实体类时间类型 ,三种模式:1.ONLY_DATE-只使用 java.util.date 代替 2.SQL_PACK-使用 java.sql 包下的 3.默认TIME_PACK使用 java.time 包下的java8 新的时间类型                .dateType(DateType.TIME_PACK)
//                .enableKotlin()//开启 kotlin 模式//                .enableSwagger()//开启 swagger 模式 直接在实体上生成swagger的API注解                .fileOverride()//覆盖已有文件//                .openDir(false)                .build();
// 包相关的配置项PackageConfigpackageConfig=newPackageConfig.Builder()
                .moduleName("generator")//指定模块名称                .parent("com.xing.springBoot.mybatisPlus")//指定父包名                .controller("controller")//默认就是controller 一般不用设置                .entity("model")
                .service("service")
                .serviceImpl("service.impl")
                .mapper("mapper")
                .other("other")//指定自定义文件包名                .xml("mapper.xml")//指定xml包名                .build();
// 策略配置项StrategyConfigstrategyConfig=newStrategyConfig.Builder()
                .addTablePrefix("t_")//增加表前缀//                .addTableSuffix("")//增加表后缀                .addFieldPrefix("c_")//增加字段前缀                .addFieldSuffix()//增加过滤字段后缀//                .addInclude("")//增加包含的表名 include和addExclude 只有存在一个                .addExclude("test")//增加排除表                .disableSqlFilter()//禁用sql过滤                .enableSkipView()//开启跳过视图                .build();
TemplateConfigtemplateConfig=newTemplateConfig.Builder()
                .disable(TemplateType.ENTITY)
                .entity("/templates/entity.java")
                .service("/templates/service.java")
                .serviceImpl("/templates/serviceImpl.java")
                .mapper("/templates/mapper.java")
                .mapperXml("/templates/mapper.xml")
                .controller("/templates/controller.java")
                .build();
// 注入配置InjectionConfiginjectionConfig=newInjectionConfig.Builder().build();
//特么的 这个AutoGenerator还没有加上注入templateConfig的方法ConfigBuilderconfigBuilder=newConfigBuilder(packageConfig, dataSourceConfig, strategyConfig, templateConfig, globalConfig, injectionConfig);
//自动生成AutoGeneratorautoGenerator=newAutoGenerator(dataSourceConfig)
//                .global(globalConfig)//                .strategy(strategyConfig)//                .packageInfo(packageConfig);                .config(configBuilder);
autoGenerator.execute();
    }
}

       通过源码可以看到主要执行的是AutoGenerator 自动生成类,然后将一些配置类实例注入到生成类,达到配置的目的。

三、运行结果

image.png

       确实很好啊!连controller都自动建立了呢!

官网对属性做了简单的注释,用的时候去官网查看吧。

总结:

       MybatisPlus Generator代码生成器最新版本3.5.1根据数据库表生成代码,新版本添加了Builder方式来配置,别用3.5.0哈,那个版本没法完成数据库的下划线分割映射驼峰命名法命名。


END


目录
相关文章
|
2月前
|
Java 数据库连接 Maven
使用mybatis插件generator生成实体类,dao层和mapper映射
使用mybatis插件generator生成实体类,dao层和mapper映射
48 0
|
4月前
|
Oracle Java 数据库连接
使用Mybatis generator自动生成代码,仅限Oracle数据库
使用Mybatis generator自动生成代码,仅限Oracle数据库
|
8月前
|
XML Java 数据库连接
Mybatis使用generator逆向工程生成器生成entity、mapper、.xml模版类
今天将表建好了,但是一个一个的建实体类、Mapper接口、Mapper.xml文件就十分的麻烦,所以我就想到了MyBatis逆向,今天就操作一把!这里我们采用maven来进行操作。
131 0
|
28天前
|
JavaScript Java 关系型数据库
SpringBoot + Mybatis + Vue的代码生成器
SpringBoot + Mybatis + Vue的代码生成器
33 2
|
8月前
|
算法 Java 数据库
mybatis-plus代码生成器生成
mybatis-plus代码生成器生成
76 0
|
4月前
|
API
mybatis-plus代码生成器(二)
mybatis-plus代码生成器(二)
38 0
|
5月前
|
关系型数据库 MySQL
mybatis-plus代码生成器
mybatis-plus代码生成器
34 0
|
6月前
|
SQL 关系型数据库 MySQL
mybatis-plus代码生成器(+24篇MySql/MyBatis-Plus文章)
mybatis-plus代码生成器(+24篇MySql/MyBatis-Plus文章)
55 0
|
8月前
|
Java
MybatisPlus代码生成器:快速生成高质量代码
MybatisPlus代码生成器:快速生成高质量代码
48 0