引用
<!-- mybatis-plus依赖 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.2</version></dependency><!-- mybatis-plus代码生成 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.3.2</version></dependency><!-- 以上两个依赖版本号要一致 --><!-- MyBatis-Plus模板引擎 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version></dependency><!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>
自动生成脚本,修改变量即可,表名需要运行main方法后控制台录入
package com.disk.sys;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
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 org.apache.commons.lang3.StringUtils;import java.util.Scanner;public class GeneratorServiceEntity {private static String projectPath = System.getProperty("user.dir");// 数据库用户名,默认为rootprivate static String dbUsername = "root";// 数据库密码,默认为rootprivate static String dbPassword = "123456";// 作者名称,默认为当前用户名private static String authorName = "karle";// 项目包名private static String packageName = "com.disk.sys";// 数据库链接private static String dbUrl = "jdbc:mysql://localhost:3306/disk_sys?useUnicode=true&useSSL=false&characterEncoding=utf8";public static void main(String[] args) {boolean serviceNameStartWithI = false;//user -> UserService 设置成true: user -> IUserServicegenerateByTables(serviceNameStartWithI, packageName, "sysInfo"); /* 【必填】添加要生成的表可多个 */}private static void generateByTables(boolean serviceNameStartWithI, String packageName, String... tableNames) {GlobalConfig config = new GlobalConfig();DataSourceConfig dataSourceConfig = new DataSourceConfig();dataSourceConfig.setDbType(DbType.MYSQL).setUrl(dbUrl).setUsername(dbUsername) /* 【必填】账号 */.setPassword(dbPassword) /* 【必填】密码 */.setDriverName("com.mysql.cj.jdbc.Driver");StrategyConfig strategyConfig = new StrategyConfig();strategyConfig.setCapitalMode(true).setEntityLombokModel(true) // 实体是否为lombok模型(默认 false).setNaming(NamingStrategy.underline_to_camel) // 命名法转换.setInclude(scanner("表名,多个英文逗号分割").split(","));config.setActiveRecord(false).setAuthor(authorName).setOutputDir(projectPath + "/src/main/java").setFileOverride(true);if (!serviceNameStartWithI) {config.setServiceName("%sService");}new AutoGenerator().setGlobalConfig(config).setDataSource(dataSourceConfig).setStrategy(strategyConfig).setPackageInfo(new PackageConfig() /* 【选填】在这里可以修改生成各层的包名 */.setParent(packageName).setController("controller").setEntity("entity")).execute();}private void generateByTables(String packageName, String... tableNames) {generateByTables(true, packageName, tableNames);}// 扫描器方法,用于在运行时获取用户输入private static String scanner(String tip) {Scanner scanner = new Scanner(System.in);StringBuilder help = new StringBuilder();help.append("请输入" + tip + ":");System.out.println(help.toString());if (scanner.hasNext()) {String ipt = scanner.next();if (StringUtils.isNotBlank(ipt)) {return ipt;}}throw new MybatisPlusException("请输入正确的" + tip + "!");}
}