> 文档中心 > Springboot实战:Mybatis-Plus 代码生成器(附git源码)一键生成XML、实体、service、controller

Springboot实战:Mybatis-Plus 代码生成器(附git源码)一键生成XML、实体、service、controller

Mybatis-Plus 代码生成器,一键生成XML、实体、service、controller

    • 简介
    • 1. 导入依赖
    • 2. 编写生成工具
    • 3. 代码生成
    • 4. 源码地址

简介

MyBatis-Plus CodeGenerator 代码自动生成器,可以根据使用者的配置,去数据库中根据每一个数据表自动生成对应的 Controller、Service、ServiceImpl、Mapper、Entity 等繁琐且没有技术含量的事情,提高开发效率。
本博客项目源码地址:

  • 项目源码github地址
  • 项目源码国内gitee地址

1. 导入依赖

  <dependency>     <groupId>com.baomidou</groupId>     <artifactId>mybatis-plus-generator</artifactId>     <version>3.3.1</version> </dependency>  <dependency>     <groupId>org.apache.velocity</groupId>     <artifactId>velocity-engine-core</artifactId>     <version>2.0</version> </dependency>  <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <scope>runtime</scope> </dependency>

2. 编写生成工具

这里需按自己实际情况修改
DB_URL 数据库连接地址
USERNAME 数据库账号
PASSWORD 数据库密码
DRIVER_NAME 数据库驱动名,8.0+版本的mysql驱动如:com.mysql.cj.jdbc.Driver
TABLE_NAME 输入要生成的表名

import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.annotation.FieldFill;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.config.*;import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;import com.baomidou.mybatisplus.generator.config.po.TableFill;import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import java.util.ArrayList;import java.util.List;/ * * 配置参考 : https://baomidou.com/guide/generator.html * * @author: qiDing * date: 2020/6/4 0004 14:56 * description: TODO */public class GlobalConfigs {    /     * 数据库地址     */    private static final String DB_URL="jdbc:mysql://192.168.41.128:3306/mind_links_core?useUnicode=true&useSSL=false&characterEncoding=utf8&useTimezone=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&useServerPrepStmts=true&allowMultiQueries=true";    /     * db 账号     */    private static final String USERNAME = "root";    /     * db 密码     */    private static final String PASSWORD = "123456";    /     * db 驱动     */    private static final String DRIVER_NAME = "com.mysql.cj.jdbc.Driver";    /     * 存放路径,包路径     */    private static final String PACKAGE = "com.example.mybatis_generation";    /     * 需要生成的数据库表名,数组,可多个     */    private static final String[] TABLE_NAME = {"json_data"};    public static void main(String[] args) { boolean fileOverride = false; GlobalConfig config = new GlobalConfig(); String path = System.getProperty("user.dir"); config.setActiveRecord(true)  .setAuthor("qiDing")  .setOutputDir(path+"\\src\\main\\java\\")  .setBaseResultMap(true)  .setBaseColumnList(true)  .setFileOverride(fileOverride); // resource * DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setDbType(DbType.MYSQL)  .setUrl(DB_URL)  .setUsername(USERNAME)  .setPassword(PASSWORD)  .setDriverName(DRIVER_NAME)  .setTypeConvert(new MySqlTypeConvert() {      @Override      public DbColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {   System.out.println("转换类型:" + fieldType);   //tinyint转换成Boolean   if (fieldType.toLowerCase().contains("tinyint")) {return DbColumnType.BOOLEAN;   }   if (fieldType.toLowerCase().contains("datetime")) {return DbColumnType.DATE;   }   return (DbColumnType) super.processTypeConvert(globalConfig, fieldType);      }  }); // Policy configuration  List<TableFill> tableFillList = new ArrayList<>(); tableFillList.add(new TableFill("gmt_modified", FieldFill.INSERT_UPDATE)); tableFillList.add(new TableFill("modifier_id", FieldFill.INSERT_UPDATE)); tableFillList.add(new TableFill("creator_id", FieldFill.INSERT)); tableFillList.add(new TableFill("gmt_create", FieldFill.INSERT)); tableFillList.add(new TableFill("available_flag", FieldFill.INSERT)); tableFillList.add(new TableFill("deleted_flag", FieldFill.INSERT)); tableFillList.add(new TableFill("sync_flag", FieldFill.INSERT)); StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig  .setCapitalMode(true)  .setEntityLombokModel(true)  .setNaming(NamingStrategy.underline_to_camel)  .setTableFillList(tableFillList)  .setInclude(TABLE_NAME); new AutoGenerator().setGlobalConfig(config)  .setDataSource(dataSourceConfig)  .setStrategy(strategyConfig)  .setPackageInfo(   new PackageConfig()    .setParent(PACKAGE)    .setController("controller")    .setEntity("domain")    .setMapper("dao")    .setXml("dao")  )  .setTemplate(   new TemplateConfig()    .setServiceImpl("templates/serviceImpl.java")  )  .execute();    }}

3. 代码生成

配置好后直接运行main方法即可

最终效果如下:
Springboot实战:Mybatis-Plus 代码生成器(附git源码)一键生成XML、实体、service、controller

4. 源码地址

  • Springboot开发脚手架,集合各种常用框架使用案例,完善的文档,致力于让开发者快速搭建基础环境并让应用跑起来。
  • 项目源码国内gitee地址
  • 项目源码github地址