您的位置 首页 java

Java,SpringBoot,MyBatisPlus根据数据库表生成代码

生成说明

代码只生成了基础性的代码,数据库为: Oracle11G , 文章,记录一下。

生成代码

 <dependency>
    <groupId>com. Oracle </groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.3</version>
</dependency>
<!-- lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
<!-- MyBatis -plusd代码生成器-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
</dependency>
<!--模板引擎-->
<dependency>
    <groupId>org. apache .velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.2</version>
</dependency>
<!--  freemarker -->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.30</version>
</dependency>
<!-- beetl-->
<dependency>
    <groupId>com.ibeetl</groupId>
    <artifactId>beetl</artifactId>
    <version>3.3.0.RELEASE</version>
</dependency>  
 import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
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.converts.OracleTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

public class MyBatisPlusGenerator {

    public  static   void  main(String[] args) {
        String projectPath = "D:\\MyData\\MinFang\\20211112\\distribution-platform\\distribution-manager";
        // 1、代码生成器
        AutoGenerator autoGenerator = new AutoGenerator();
        // 2、全局配置
        autoGenerator.setGlobalConfig(getGlobalConfig(projectPath));
        // 3、数据源配置
        autoGenerator.set dataSource (getDataSourceConfig());
        // 4、包配置
        // customer、goods、instock、outstock、stock
        String smallModule = "stock";
        PackageConfig packageConfig = new PackageConfig()
                // 父包模块名
                .setParent("com.platform.distribution")
                .setModuleName("")
                .setEntity("model.medicine." + smallModule)
                .setController("controller.medicine." + smallModule)
                .setService("service.medicine." + smallModule)
                .setServiceImpl("service.medicine." + smallModule + ".impl")
                .setMapper("mapper.medicine." + smallModule)
                .set Xml ("mapper.medicine." + smallModule);
        // 路径配置信息
        // .setPathInfo()
        autoGenerator.setPackageInfo(packageConfig);

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig()
                //url中驼峰转连字符
                .setControllerMappingHyphenStyle(true)
                //数据库表映射到实体的命名策略
                .setColumnNaming(NamingStrategy.underline_to_camel)
                .setNaming(NamingStrategy.underline_to_camel)
                .setEntityLombokModel(true)
                // Rest ful api风格控制器
                .setRestControllerStyle(true)

                //生成实体时去掉表前缀
                .setTablePrefix("DP_");

        //公共父类 , 你自己的父类控制器,没有就不用设置!
        // .setSuperControllerClass()
        //自定义继承的Entity类全称,带包名
        // .setSuperEntityClass()
        //写于父类中的公共字段
        // .setSuperEntityColumns()
        strategy.setInclude(
                //"DP_CUSTOMER",
                //"DP_ADDRESS"

                //"DP_GOODS"

                //"DP_INSTOCKORDER_D",
                //"DP_INSTOCKORDER_M",
                //"DP_INSTOCK_FEEDBACK"

                //"DP_OUTSTOCKORDER_D",
                //"DP_OUTSTOCKORDER_M",
                //"DP_OUTSTOCK_FEEDBACK"
                "DP_STOCKMODIFY_FEEDBACK"
        );
        // 公共父类
        //strategy.setSuperControllerClass("com.baomidou.ant.core.BaseController");
        // 实体类主键名称设置 // 在代码生成器主类上配置模板引擎
        strategy.setSuperEntityColumns("ID");
        autoGenerator.setStrategy(strategy);
        // 6、添加模板引擎
        autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
        // 7、执行生成
        autoGenerator.execute();
    }

    /**
     * 数据源配置
     *
     * @return
     */    public static  DataSource Config getDataSourceConfig() {
        String url = " jdbc :oracle:thin:@ 127.0.0.1 :1521:orcl";
        String driverName = "oracle.jdbc.driver.OracleDriver";
        String username = "test";
        String password = "test1234";
        DataSourceConfig dataSourceConfig = new DataSourceConfig()
                // 数据库信息查询类
                // .setDbQuery()
                // .setTypeConvert()
                .setDbType(DbType.ORACLE)
                .setDriverName(driverName)
                .setUrl(url)
                .setUsername(username)
                .setPassword(password);
        // 数据库 schema name(例如 PostgreSQL 可指定为 public)
        // dataSourceConfig.setSchemaName("public");
        dataSourceConfig.setTypeConvert(new OracleTypeConvert() {
        });
        return dataSourceConfig;
    }

    /**
     * 全局配置
     *
     * @param projectPath
     * @return
     */    public static GlobalConfig getGlobalConfig(String projectPath) {
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setAuthor("");
        //定义生成的实体类中日期类型
        globalConfig.setDateType(DateType.ONLY_DATE);
        //重新生成时文件是否覆盖
        globalConfig.set File Override(false);
        //主键策略
        globalConfig.setIdType(IdType.AUTO);
        // 是否打开输出目录(默认值:null)
        globalConfig.setOpen(false);
        //输出路径
        globalConfig.setOutputDir(projectPath + "/src/main/java");
        globalConfig.setControllerName("Medicine%sController");
        globalConfig.setEntityName("Medicine%s");
        globalConfig.setServiceName("IMedicine%sService");
        globalConfig.setServiceImplName("Medicine%sServiceImpl");
        globalConfig.setMapperName("Medicine%sMapper");
        globalConfig.setXmlName("Medicine%sMapper");
        //开启Swagger2模式
        // globalConfig.setSwagger2(true) ;
        globalConfig.setActiveRecord(false);
        // 是否覆盖已有文件(默认值:false)
        // globalConfig.setFileOverride(true);
        // XML ResultMap
        globalConfig.setBaseResultMap(true);
        // XML columList
        globalConfig.setBaseColumnList(true);
        // XML 二级缓存
        globalConfig.setEnableCache(true);
        return globalConfig;
    }

}  

文章来源:智云一二三科技

文章标题:Java,SpringBoot,MyBatisPlus根据数据库表生成代码

文章地址:https://www.zhihuclub.com/180441.shtml

关于作者: 智云科技

热门文章

网站地图