**一个能正常运行的springboot项目,项目目录如图
导入mybatis-plus相关jar包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.7.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.0.7.1</version>
</dependency>
<!-- 代码生成配置 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
代码生成器代码,都有详细注解,把项目相关信息和数据库连接信息修改为自己的,就可以直接运行
package com.springboot.shiro.utils;
import com.baomidou.mybatisplus.annotation.DbType;
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;
public class Generator {
public static void main(String[] args) {
String packageName = "com.springboot.shiro";
String projectName = "springboot-shiro";
boolean serviceNameStartWithI = true;//auth -> UserService, 设置成true: auth -> IUserService
//要生成的数据库表,多表为数组形式,再次运行会覆盖之前的代码
//不要选择已生成的表
String[] tableArr= {"customer","sys_permission","sys_role"};
generateByTables(serviceNameStartWithI, packageName, "author", projectName, tableArr);
System.out.println("completed...");
}
/**
* @param serviceNameStartWithI
* @param packageName 包名
* @param author 作者
* @param database 数据库名
* @param tableNames 表名
*/
private static void generateByTables(boolean serviceNameStartWithI, String packageName, String author, String projectName, String... tableNames) {
GlobalConfig config = new GlobalConfig();
String dbUrl = "jdbc:mysql://localhost:3306/springboot-shiro?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false";
String username = "root";
String password = "00000000";
String driverName = "com.mysql.cj.jdbc.Driver";
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL)
.setUrl(dbUrl)
.setUsername(username)
.setPassword(password)
.setDriverName(driverName);
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig
// 全局大写命名 ORACLE 注意
.setCapitalMode(true)
.setEntityLombokModel(false)
.setNaming(NamingStrategy.underline_to_camel)
.setInclude(tableNames);//修改替换成你需要的表名,多个表名传数组
config.setActiveRecord(false)
.setAuthor(author)
//设置输出路径
.setOutputDir(System.getProperty("user.dir")+"/src/main/java/")
.setFileOverride(true)
.setEnableCache(false)
.setBaseResultMap(true)// XML ResultMap
.setBaseColumnList(true);// XML columList;
System.out.println("******"+System.getProperty("user.dir"));
if (!serviceNameStartWithI) {
config.setServiceName("%sService");
}
new AutoGenerator().setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(
new PackageConfig()
.setParent(packageName)
.setController("controller")
.setEntity("entity")
.setMapper("mapper")
.setService("service")
.setServiceImpl("service.Impl")
.setXml("xml")
).execute();
}
}
右键运行之后刷新项目如图
代码生成完毕**
注意:再次运行会覆盖之前的代码,选择表要慎重