Mybatis-plus代码生成器
前言
回想我们之前进行开发的过程,首先我们需要编写与数据库表对应的实体类,接着再进行创建各种层次的包(mapper,service,impl),这个过程是不是感觉非常浪费时间呢呢,然而现在有一款可以帮助我们生成的工具,它就是:MpBatis-Plus的代码自动生成器。
一、介绍
代码自动生成器非常好用,我们只需要提供我们数据库的表名,然后就可以让代码生成器自动帮我们完成各种代码的创建,整个过程非常便捷。
二、代码生成器的创建
2.1 准备工作
需要在数据库中创建好我们的表结构
CREATE TABLE `users` (
`user_id` bigint NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password_hash` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
`first_name` varchar(255) DEFAULT NULL,
`last_name` varchar(255) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
2.2创建项目
在pom.xml中引入相关依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.7</version>
</dependency>
<!-- 代码自动生成器依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.9</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
去官网上复制所需的配置项
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
/**
* @Description: 代码生成器模板
* @author: zh
* @Create :
* @Project_name :
* @Version :
**/
public class gennatioan {
public static void main(String[] args) {
// / 使用 FastAutoGenerator 快速配置代码生成器---
FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/mysql?serverTimezone=GMT%2B8", "root", "root")
.globalConfig(builder -> {
builder.author("zh") // 设置作者
.outputDir("src\\main\\java"); // 输出目录--这里我因为本地是windows,是linux则将\\改为/即可
})
.packageConfig(builder -> {
builder.parent("com.zh.Thread") // 设置父包名
.entity("pojos.entity") // 设置实体类包名
.mapper("mapper") // 设置 Mapper 接口包名
.service("service") // 设置 Service 接口包名
.serviceImpl("service.impl") // 设置 Service 实现类包名
.xml("mappers"); // 设置 Mapper XML 文件包名
})
.strategyConfig(builder -> {
builder.addInclude("roles", "users","user_roles","role_permissions","permissions") // 设置需要生成的表名
.entityBuilder()
.enableLombok() // 启用 Lombok
.enableTableFieldAnnotation() // 启用字段注解
.controllerBuilder()
.enableFileOverride()
.enableRestStyle(); // 启用 REST 风格
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用 Freemarker 模板引擎
.execute(); // 执行生成
}
}
执行以上代码就可以实现自动生成。非常方便便捷
三、配置雪花算法
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
注入这个bean可以实现自动生成UUID的配置项。