SpringBoot代码生成器-基于Mybatis Plus

Java猫

共 4256字,需浏览 9分钟

 ·

2021-12-15 22:25

SpringBoot代码生成器-基于Mybatis Plus

可在SpringBoot项目中,快速生成基本结构代码,并且映射数据库字段实体,方便快捷。


快速搭建项目结构,实用性+++++!!!!


配置好生成器代码参数即可一键生成代码。


1.引入依赖:

        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-boot-starterartifactId>
            <version>3.4.2version>
        dependency>

        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-generatorartifactId>
            <version>3.0-RC1version>
        dependency>

        
        <dependency>
            <groupId>org.apache.velocitygroupId>
            <artifactId>velocityartifactId>
            <version>1.7version>
        dependency>

        
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <version>1.18.20version>
        dependency>


2.代码生成器:

package com.hbm.codegeneration;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;

import java.util.ArrayList;
import java.util.List;

/**
 * 代码生成器
 *
 * @Author 黄柏茗
 * @Date 2021-12-10
 */

public class Main {
    public static void main(String[] args) {
    
        //代码生成器
        AutoGenerator autoGenerator = new AutoGenerator();

        //1.数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);//数据库枚举类型
        dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("1234");
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/Test?useUnicode=true&characterEncoding=UTF-8");
        autoGenerator.setDataSource(dataSourceConfig); //数据源配置进自动生成器里

        //2.全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOpen(false); //代码生成后是否自动打开 (代码生成完成后以文件夹形式弹出来)
        globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");//设置代码输出路径(当前系统项目路径,源代码Java里面)
        globalConfig.setAuthor("黄柏茗"); //作者名
        globalConfig.setServiceName("%sService"); //%s代表表名前缀,后面补上Service
        autoGenerator.setGlobalConfig(globalConfig);

        //3.包配置
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.hbm.codegeneration");//父包名
        packageConfig.setEntity("entity");//实体类包名
        packageConfig.setMapper("mapper");//mapper包名
        packageConfig.setController("controller");//控制层包名
        packageConfig.setService("service");//业务层接口包名
        packageConfig.setServiceImpl("service.impl");//业务层实现类包名
        autoGenerator.setPackageInfo(packageConfig);

        //策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setEntityLombokModel(true);//是否给实体类添加 Lombok 的注解
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);//表名映射类名,下划线转驼峰  如:表名 user_address 下划线转驼峰实体类为 userAddress
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);//表字段映射类属性,下划线转驼峰 如:表字段 user_id 下划线转驼峰实体类属性 userId

        //4.表自动填充 (mp自动填充,在添加数据的时候,创建时间和修改时间,是在灭)  ===此处不需要可省略===
//        List list  = new ArrayList<>();
//        TableFill create_time = new TableFill("create_time", FieldFill.INSERT);
//        TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);
//        list.add(create_time);
//        list.add(update_time);
//        strategyConfig.setTableFillList(list);//设置表自动填充
        autoGenerator.setStrategy(strategyConfig);

        // 5. 配置模板引擎
        // 默认采用velocity模板
        //autoGenerator.setTemplateEngine(new VelocityTemplateEngine());

        //6.执行生成代码
        autoGenerator.execute();
        System.err.println("代码生成完成");
    }
}


测试环境:

SpringBoot、Mybatis Plus、MySQL


测试数据库表:

-- 用户表
create table User(
userid int primary key auto_increment comment '用户主键ID',
userName varchar(40comment '用户名',
adress_Id int comment '用户地址表主键ID'
)

-- 用户地址表
create table User_Address(
addressId int primary key auto_increment comment '地址主键ID',
address varchar(200comment '具体地址'
)


生成代码结构:



大功告成!


浏览 113
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报