Mybatisplus-generator+freemarker: 打造属于你自己的SpringBoot代码生成器
2024-02-03 06:39:13
利用 Mybatisplus-Generator 和 freemarker 自定义 Spring Boot 代码生成
在繁琐的 Spring Boot 数据库开发过程中,编写 CRUD 代码无疑是一项重复且费时的工作。为了提升开发效率和代码质量,我们可以借助 Mybatisplus-Generator 和 freemarker 构建一个定制的代码生成器,自动化生成所需的 Java 代码。
Mybatisplus-Generator 介绍
Mybatisplus-Generator 是一款强大的代码生成工具,可根据数据库表结构自动创建 Java 代码。它支持广泛的数据库类型,并提供灵活的配置选项,允许开发者定制生成的代码内容和格式。
freemarker 介绍
freemarker 是一款模板引擎,能够根据模板文件生成文本文件。它支持各种数据类型,并提供丰富的模板指令,赋予开发者控制模板逻辑和格式的能力。
整合 Mybatisplus-Generator 和 freemarker
在 Spring Boot 项目中集成 Mybatisplus-Generator 和 freemarker 非常简单,只需执行以下步骤:
- 添加依赖项:
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
- 创建模板文件:
模板文件的后缀为 .ftl
,通常放置在 resources/templates
目录下。
- 配置 Mybatisplus-Generator:
@Configuration
public class MybatisGeneratorConfiguration {
// 配置生成器设置
@Bean
public SqlSessionFactory sqlSessionFactory() {
// 初始化配置和数据库连接,生成 Java 代码
}
}
- 编写代码生成脚本:
脚本后缀为 .xml
,通常放置在 resources/generator
目录下。
- 运行代码生成脚本:
@SpringBootApplication
public class CodeGeneratorApplication {
public static void main(String[] args) {
// 运行生成器,生成 Java 代码
}
}
优点
使用 Mybatisplus-Generator 和 freemarker 自定义代码生成器具备以下优势:
- 提高效率: 自动化代码生成,大幅提升开发速度。
- 增强质量: 生成的代码遵循最佳实践,减少缺陷。
- 确保一致性: 生成的代码风格统一,符合项目规范。
示例
以下是一个示例脚本,展示如何使用 Mybatisplus-Generator 和 freemarker 生成实体类:
<?xml version="1.0" encoding="UTF-8"?>
<generatorConfiguration>
<context id="MyBatis Generator Context">
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<jdbcConnection connectionURL="jdbc:mysql://localhost:3306/test" driverClass="com.mysql.cj.jdbc.Driver" password="password" userId="root" />
<javaModelGenerator targetPackage="com.example.demo.model" targetProject="target/generated-sources" />
<sqlMapGenerator targetPackage="com.example.demo.sqlmap" targetProject="target/generated-sources" />
<table tableName="user" />
</context>
</generatorConfiguration>
常见问题解答
1. 如何自定义生成的代码?
通过 freemarker 模板可以灵活地自定义代码格式和内容。
2. 如何支持不同的数据库类型?
Mybatisplus-Generator 支持 MySQL、Oracle、SQL Server 等多种数据库类型。
3. 如何提高代码质量?
遵守最佳实践,如使用驼峰命名法、适当的注释和异常处理。
4. 如何确保代码一致性?
建立编码规范并使用代码审查工具强制执行。
5. 如何避免代码重复?
利用代码生成器自动生成重复的代码,如实体类、映射器和服务层。