mybatisplus 生成实体类
时间: 2025-05-17 15:16:25 浏览: 18
### 使用 MyBatisPlus 自动生成实体类
MyBatisPlus 提供了一种便捷的方式来自动生成实体类、Mapper 接口以及 Service 和 Controller 层代码。以下是关于如何配置并运行 MyBatisPlus 的代码生成器的相关说明。
#### 配置依赖
为了使用 MyBatisPlus 代码生成器,首先需要在项目的 `pom.xml` 文件中引入必要的依赖项:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
```
上述依赖包含了 MyBatisPlus 代码生成器的核心功能以及 FreeMarker 模板引擎的支持[^1]。
#### 编写代码生成器配置
通过编写一段 Java 程序来初始化和执行代码生成逻辑。以下是一个典型的代码生成器示例:
```java
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;
public class CodeGenerator {
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("Your Name"); // 设置作者名
gc.setOpen(false); // 是否打开输出目录
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("password");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("com.example.demo");
pc.setModuleName(null);
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("table_name"); // 替换为实际表名
strategy.setNaming(com.baomidou.mybatisplus.generator.config.rules.NamingStrategy.underline_to_camel);
strategy.setColumnNaming(com.baomidou.mybatisplus.generator.config.rules.NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
mpg.setStrategy(strategy);
mpg.execute(); // 执行生成操作
}
}
```
这段代码实现了基于指定数据库表的自动代码生成功能,并支持 Lombok 注解以减少样板代码[^3]。
#### 自定义字段处理
如果希望自动生成的实体类包含额外的功能(例如 ID 自动生成或时间戳填充),可以通过设置策略中的特定属性完成。例如,在 `StrategyConfig` 中启用如下特性可以满足需求:
- **ID 自动生成**:
```java
strategy.setIdType(IdType.ASSIGN_ID); // 或其他类型的主键生成方式
```
- **时间戳填充**:
在实体类中添加注解即可实现创建时间和更新时间的自动填充:
```java
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.UPDATE)
private Date updateTime;
```
这些功能的具体实现细节可以在官方文档或其他技术博客中找到更多参考资料[^2]。
---
###
阅读全文
相关推荐
















