首页 > 其他分享 >三层代码生成器

三层代码生成器

时间:2023-06-27 15:24:24浏览次数:43  
标签:代码生成 mybatisplus new baomidou packageConfig import 三层 com

package com.uma.hsnn.util;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
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.rules.NamingStrategy;

import java.util.Scanner;

public class Generate {

    public static void main(String[] args) {

        // 创建generate对象
        AutoGenerator autoGenerator = new AutoGenerator();

        // 数据源
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mysql?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC");
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("123456");
        autoGenerator.setDataSource(dataSourceConfig);

        // 全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
        globalConfig.setOpen(false);
        globalConfig.setAuthor("uma");
        globalConfig.setServiceName("%sService"); // 去掉service的前缀
        autoGenerator.setGlobalConfig(globalConfig);

        // 包信息
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.framework.twm");
        packageConfig.setController("controller");
        packageConfig.setService("service");
        packageConfig.setServiceImpl("service.impl");
        packageConfig.setMapper("mapper");
        packageConfig.setXml("mapper.xml");
        packageConfig.setEntity("entity");
        autoGenerator.setPackageInfo(packageConfig);

        // 配置策略
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setTablePrefix("mp_");
        strategyConfig.setInclude(scanner("表名,多个英文逗号分割").split(","));
        strategyConfig.setEntityLombokModel(true);
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); // 下划线转驼峰
        autoGenerator.setStrategy(strategyConfig);

        // 执行
        autoGenerator.execute();
    }

    /**
     * 接收用户输入的方法
     * @param str
     * @return
     */
    private static String scanner(String str){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入"+str+":");
        if(sc.hasNext()){
            String tableNames = sc.next();
            if(StringUtils.isNotBlank(tableNames)){
                return tableNames;
            }
        }
        throw new MybatisPlusException("请输入正确的" + str + "!");
    }
}

 

标签:代码生成,mybatisplus,new,baomidou,packageConfig,import,三层,com
From: https://www.cnblogs.com/twm7512/p/17508952.html

相关文章

  • 如果三层逻辑都放到一个地方
    最近在写C#遇到sqlsugar.它的语法偏向数据库.以前封装都是把语法封装成主语言,即C#的思考逻辑,像EF的数据库操作想去把数据库封装对集合的操作.如果都是主语言的思考方式的话,开发的时候就不需要换面向后台保存或前台显示的思考.不过看到sqlsugar,想起来或许可以把显示和存储......
  • 三层靶机内网渗透测试
    三层靶机内网渗透测试信息收集目标ip:192.168.31.145端口信息收集:nmap-A-T4-p- 192.168.31.145开放端口:21/22/80/111/888/3306/8888   操作系统:Liunx分析利用21/22端口--弱口令爆破hydra-vV-lroot-P/usr/share/wordlists/metasploit/password.lst 192.1......
  • Simulink联合单片机开发代码生成1.支持飞思卡尔16位/32位 2.Simul
    Simulink联合单片机开发代码生成1.支持飞思卡尔16位/32位2.Simulink模块化编程3.带有Bootloader底层,支持CAN上位机刷写4.matlab/Simulink基础m语言,Sfunction等基础资料5.模块化编程案例ID:35199607337353077......
  • Springboot web,三层架构, IOC&DI 使用总结2023
    Springbootweb,三层架构,IOC&DI使用总结2023一.spring.io全家桶springbootspringframework基础框架,配置繁琐,入门难度大--》springbootspringcloudspringsecurityspringdataspring发展到今天是一个生态圈,提供了若干个子项目,每个子项目用于完成特定的功能。二.sp......
  • 汉源高科4万兆光6个万兆光口+24个千兆光口+24千兆电口万兆三层网管型工业以太网交换机
     HY5700-856XG24GX24GT三层管理型工业以太网交换机,提供6个万兆光口+24个千兆光口+24个千兆电口。可帮助用户实现以太网数据的交换、汇聚以及远距离光传输功能。产品设计符合以太网标准,添加防雷、防静电保护措施,-40℃~+85℃的宽范围工作温度,性能稳定可靠。该设备可广泛应用于智能交......
  • SSM三层架构流程总结
    1.搭环境webapp\WEB-INF\web.xmlpom里面激活webapp<packaging>war</packaging>将pom坐标复制web.xml复制进去配置文件resources目录引入applicationContext.xmljdbc.propertieslog4j.propertiesspring-mvc.xml2.创建实体类层com.msr.bean实体类.class命名规则......
  • RDIFramework.NET平台代码生成器V3.2版本全新发布(提供下载-免费使用)
    最新RDIFramework.NET代码生成器全新V3.5版本发布-重大升级 回顾V3.1版本更新内容如下:1、增加对Oracle表创建语句的查看。2、新增对MySql的代码生成支持。3、全面重构对多线程的支持,改变以前会无故退出的现象。本次在V3.1版本的基础上,增加了代码生成器自动升......
  • RDIFramework.NET代码生成器全新V3.5版本发布-重大升级
    发布说明RDIFramework.NET代码生成器V3.5版本全新震撼推出,相比上次版本,本次发布新增与修改的内容如下:1、全新增加了WinForm界面代码的生成,可直接生成常用的主界面(集新增、修改、删除、查询、分页、打印等常用功能)、编辑界面。真正加大了开发效率,相比以前的版本界面部分只是针对Web......
  • 利用dotnet core的代码生成实现类型转换
    利用dotnetcore的代码生成的特性,自动生成类型转换的代码。类似于AutoMaper,但是代码生成近似于手写代码,不用反射,性能更好生成通过比较属性名字(不区分大小写)属性支持简单类型,类,List,Dictionary(key最好是string类型)在需要转换的类上标记特性:ConvertFrom、ConvertTo[Conv......
  • (转)我所理解的Entitas——Jenny代码生成器(序章)
    前(fei)言(hua)使用Entitas集成的代码生成器时如果代码有报错需要先把报错处理掉。如果我们是想删除某个Component或者修改Component中数据类型时就很麻烦。使用Jenny代码生成器时则不用理会这些,直接删除某个Component然后重新生成就行。获取JennyAssetStore导入Entitas时会带有J......