idea环境
第一种方法
generator
插件 小鸟图标 gui
界面 mybatis generator code helper pro
第二种方法
通过配置generator
文件完成,配置步骤如下
- 首先得保证数据库中有要生成的表,以
sys_user
为例 - 添加生成器依赖
<!--加入mybatis-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<!--加入mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--代码生成器依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<!--添加 模板引擎 依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,
用户可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
- 在
.properties
中配置数据源
# DataSource Config
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = 123456
- 在
test
中新建一个类TestMP
,功能详见注释,更多功能访问mybatis-plus
官网
package com.example.mybatisplus_study;
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.rules.NamingStrategy;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class TestMP {
//作者
private static String author = "ChenXueJun";
//生成位置
private static String outPath = "D:\\MP_AutoGenerator\\";
//驱动
private static String driver = "com.mysql.cj.jdbc.Driver";
//链接路径
private static String url = "jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
//数据库用户名
private static String username = "root";
//数据库密码
private static String password = "123456";
//数据库表的前缀
private static String tablePrefix = "sys_";
//需要生成的表名
private static String [] tables = {"sys_user","sys_role"};
//顶级包结构
private static String parentPackage = "com.example.mybatisplus_study";
//数据访问层包名
private static String dao = "dao";
//业务层包名
private static String service = "service";
//实体层包名
private static String entity = "entity";
//控制层包名
private static String controller = "controller";
//mapper映射文件包名
private static String mapperxml = "mapper";
//模块名
private static String modulname = "system";
@Test
public void testCreat() {
//1.全局配置
GlobalConfig config = new GlobalConfig();
config.setAuthor(author)//作者
.setOutputDir(outPath)//生成路径
.setFileOverride(true)//文件覆盖
.setIdType(IdType.AUTO)//主键策略
.setServiceName("%sService")
//设置生成的Service接口名字的首字母是否为I,加上%s则不生成I
.setBaseResultMap(true)//映射文件中是否生成ResultMap配置
.setBaseColumnList(true);//生成通用sql字段
//2.数据源配置
DataSourceConfig dsConfig = new DataSourceConfig();
dsConfig.setDbType(DbType.MYSQL)//设置数据库类型
.setDriverName(driver)//设置驱动
.setUrl(url)//设置连接路径
.setUsername(username)//设置用户名
.setPassword(password);//设置密码
//3.策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true)//全局大写命名
.setNaming(NamingStrategy.underline_to_camel)//数据库表映射到实体的命名策略
.setTablePrefix(tablePrefix)//表前缀
.setInclude(tables);//生成的表
//4.包名策略
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent(parentPackage)//顶级包结构
.setModuleName(modulname)
.setMapper(dao)//数据访问层
.setXml(mapperxml)//mapper映射文件
.setService(service)//业务逻辑层
.setController(controller)//控制器
.setEntity(entity);//实体类
//5.综合配置
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setGlobalConfig(config)
.setDataSource(dsConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig);
//6.执行
autoGenerator.execute();
}
}
- 执行该类,即可在
D:\MP_AutoGenerator\
看到自动生成的代码 - 附一个简单的工程文件,提取码:1f89