MyBatisPlus代码生成器

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

代码生成器
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
环境准备
创建一个employee表
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS employee;
CREATE TABLE employee (
id bigint(20) NOT NULL COMMENT 'ID',
name varchar(255) DEFAULT NULL COMMENT '用户名',
gender varchar(255) DEFAULT NULL COMMENT '性别',
version int(10) DEFAULT '1' COMMENT '乐观锁',
deleted int(1) DEFAULT '0' COMMENT '逻辑删除',
create_time timestamp NULL DEFAULT NULL COMMENT '创建时间',
update_time timestamp NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

复制代码

创建一个SpringBoot项目。配置Swagger,数据库驱动,MyBatisPlus,Web,lombok依赖。
代码生成器需要添加一下依赖
00.png
0000.png

完整的pom.xml依赖代码

    <dependency>
        <!--swagger2-->
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
        <exclusions>
            <exclusion>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
            </exclusion>
            <exclusion>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-models</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!--解决进入swagger页面报类型转换错误,排除2.9.2中的引用,手动增加1.5.21版本-->
    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-annotations</artifactId>
        <version>1.5.21</version>
    </dependency>
    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-models</artifactId>
        <version>1.5.21</version>
    </dependency>
    <!--swagger-ui-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>
    <!--代码生成器-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.0.5</version>
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.0</version>
    </dependency>
    <!--数据库驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <!--lombok-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    <!--mybatis-plus mybatis-plus自己开发的,非官方的-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.0.5</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

复制代码
配置SpringBoot配置文件
0.1.png

配置数据库

spring.datasource.username=root
spring.datasource.password=kylin
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

配置日志 控制台输出

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

配置逻辑删除 默认为0 逻辑删除后为1

mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

设置开发环境

spring.profiles.active=dev

关闭MybatisPlus的驼峰命名

mybatis-plus.configuration.map-underscore-to-camel-case=false

复制代码
由于测试中要使用MyBatisPlus的乐观锁,Sql性能分析,自动填充功能,填充策略。所以我们要配置MyBatisPlus的配置类,和处理器。详情见博客的MyBatis-Plus的CRUD及其扩展文章。同时还使用Swagger,所以也要配置Swagger配置类。详情见博客文章SpringBoot集成Swagger
0.2.png

{% note success %}
MybatisPlusConfig
{% endnote %}
//@MapperScan("com.kylin.mapper")//扫描mapper文件夹
@EnableTransactionManagement//自动管理事务
@Configuration//配置类
public class MybatisPlusConfig {

//注册乐观锁插件
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
    return new OptimisticLockerInterceptor();
}

//注册分页插件
@Bean
public PaginationInterceptor paginationInterceptor() {
    return new PaginationInterceptor();
}

//逻辑删除组件
@Bean
public ISqlInjector sqlInjector() {
    return new LogicSqlInjector();
}
//性能分析插件
@Bean
@Profile({"dev","test"})// 设置 dev test 环境开启,保证我们的效率
public PerformanceInterceptor performanceInterceptor() {
    PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
    performanceInterceptor.setMaxTime(100);//运行时间超过1毫秒,就不执行。
    //performanceInterceptor.setFormat(true);//是否格式化代码
    return performanceInterceptor;
}

}
复制代码
{% note success %}
MyMetaObjectHandler
{% endnote %}

@Slf4j
@Component//一定不要忘记把处理器添加到Spring的IOC容器中
public class MyMetaObjectHandler implements MetaObjectHandler {

//插入时的填充策略
@Override
public void insertFill(MetaObject metaObject) {
    //其中方法参数中第一个是前面自动填充所对应的字段,第二个是要自动填充的值。第三个是指定实体类的对象
    log.info("start insert fill.....");
    this.setFieldValByName("createTime",new Date(),metaObject);//插入数据时给createTime插入一个时间
    this.setFieldValByName("updateTime",new Date(),metaObject);
}

//更新时的填充策略
@Override
public void updateFill(MetaObject metaObject) {
    this.setFieldValByName("updateTime",new Date(),metaObject);//更新数据时给updateTime插入一个时间
}

}
复制代码
{% note success %}
SwaggerConfig
{% endnote %}
@Configuration//配置类
@EnableSwagger2//开启swagger2
public class SwaggerConfig {

//配置了Swagger的Docket的bean实例
@Bean
public Docket docket(Environment environment) {
    //设置要显示的Swagger环境
    Profiles profiles = Profiles.of("dev", "test");
    //通过environment.acceptProfiles判断是否处在自己设定的环境中
    boolean flag = environment.acceptsProfiles(profiles);
    System.out.println(flag);
    return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            //enable:是否启动swagger 为false 不能浏览器中访问
            .enable(flag)
            .groupName("Kylin")
            .select()
            //RequestHandlerSelectors 配置要扫描接口的方式
            //basePackage():指定要扫描的包
            //any():扫描全部
            //none():不扫描
            //withClassAnnotation():扫描类上的注解 参数是一个注解的反射对象
            //withMethodAnnotation():扫描方法上的注解
            .apis(RequestHandlerSelectors.basePackage("com.kylin.controller"))
            //paths()过滤什么路径
            //.paths(PathSelectors.ant("/kylin/**"))
            .build();
}

//配置Swagger信息 apiInfo
private ApiInfo apiInfo() {
    Contact contact = new Contact("Kylin", "https://www.kylin.show", "zhang171346168@qq.com");
    return new ApiInfo(
            "Kylin的SwaggerAPI文档",//标题
            "学习不易,努力努力~",//描述
            "v1.0",//版本
            "https://www.kylin.show",//组织链接
            contact,//联系人信息
            "Apache 2.0",//许可
            "http://www.apache.org/licenses/LINCENSE-2.0",//许可链接
            new ArrayList());
}

}
复制代码
到此为之环境搭建完成!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
23天前
|
SQL Java 数据库连接
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
|
2月前
|
Java 数据库连接 API
springBoot:后端解决跨域&Mybatis-Plus&SwaggerUI&代码生成器 (四)
本文介绍了后端解决跨域问题的方法及Mybatis-Plus的配置与使用。首先通过创建`CorsConfig`类并设置相关参数来实现跨域请求处理。接着,详细描述了如何引入Mybatis-Plus插件,包括配置`MybatisPlusConfig`类、定义Mapper接口以及Service层。此外,还展示了如何配置分页查询功能,并引入SwaggerUI进行API文档生成。最后,提供了代码生成器的配置示例,帮助快速生成项目所需的基础代码。
118 1
|
3月前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器
|
5月前
Mybatis-Plus 代码生成器
Mybatis-Plus 代码生成器
|
7月前
|
JavaScript Java 关系型数据库
SpringBoot + Mybatis + Vue的代码生成器
SpringBoot + Mybatis + Vue的代码生成器
90 2
|
7月前
|
JavaScript 关系型数据库 Java
MyBatisPlus 最新版代码生成器(直接拿来就能用,包含自动生成 Vue 模版)
MyBatisPlus 最新版代码生成器(直接拿来就能用,包含自动生成 Vue 模版)
589 0
|
7月前
|
XML Java 数据库连接
MyBatis代码生成器
MyBatis代码生成器
118 0
|
7月前
|
SQL 资源调度 Java
mybatis-plus代码生成器的UI界面使用非常方便
mybatis-plus代码生成器的UI界面使用非常方便
125 0
|
7月前
如何使用MybatisPlus的代码生成器功能?
如何使用MybatisPlus的代码生成器功能?
|
7月前
|
数据库连接
一款非常好用的MyBatisPlus代码生成工具
一款非常好用的MyBatisPlus代码生成工具
41 0