引用
<!-- 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");
// 数据库用户名,默认为root
private static String dbUsername = "root";
// 数据库密码,默认为root
private 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 -> IUserService
generateByTables(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 + "!");
}
}