mybatis plus自动生成代码的示例代码

写一个简单的mybatis plus插件自动生成代码的例子

pom.xml 添加配置

<!-- mybatis plus 插件-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>
<!-- mybatis plus 代码生成插件-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.2</version>
</dependency>
<!-- mybatis plus代码生成模板-->
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.0</version>
</dependency>

添加生成代码配置

package com.home.base.gen;/**
 * @author chenxf
 * @date 2022/5/5 15:00
 */

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.fill.Column;
import com.baomidou.mybatisplus.generator.fill.Property;
import com.home.base.entity.BaseEntity;
import com.home.base.rest.BaseRestController;

import java.util.Collections;

/**
 * @author chenxf
 * @date 2022/5/5 15:00
 */
public class MybatisPlusGen {
    public static void main(String[] args){
        FastAutoGenerator
                .create("jdbc:mysql://127.0.0.1:3306/policy_job?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8", "root", "123456")
                .globalConfig(builder -> {
                    builder.author("chenxf") // 设置作者
                            .fileOverride()
                           //.enableSwagger() // 开启 swagger 模式
                            .outputDir("D://gen//java//"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.home") // 设置父包名
                            .moduleName("system") // 设置父包模块名
                            .controller("rest")//controller 改名 rest

                            .pathInfo(Collections.singletonMap(OutputFile.xml, "D://gen//resources//mapper")); // 设置mapperXml生成路径
                })
                .templateConfig(builder -> {
                    builder.entity("/templates/entity.java")
                            .controller("/templates/controller.java");
                })
                .strategyConfig(builder -> {
                    builder.addInclude("test_test")
                            .entityBuilder().superClass(BaseEntity.class)
                            .disableSerialVersionUID()
                            .enableChainModel()
                            .enableLombok()
                            .enableRemoveIsPrefix()
                            .enableTableFieldAnnotation()
                            .logicDeleteColumnName("deleted")
                            .logicDeletePropertyName("deleteFlag")
                            .addSuperEntityColumns("id", "create_by","deleted", "create_time", "update_by", "update_time")
                            .addTableFills(new Column("create_time", FieldFill.INSERT))
                            .addTableFills(new Property("updateTime", FieldFill.INSERT_UPDATE))
                            .idType(IdType.AUTO)
                            .formatFileName("%sEntity").build()
                            .controllerBuilder()
                            .superClass(BaseRestController.class)
                            .enableRestStyle()
                            .formatFileName("%sApiController")
                            .build()
                            ; // 设置需要生成的表名
                           // .addTablePrefix("t_", "c_"); // 设置过滤表前缀
                })
               // .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }
}

修改内容

  • entity使用了BaseEntity,添加了 id、deleted、createTime、updateTime、createBy、updateBy等公共字段
  • controller使用了BaseRestController
  • tips:可以直接把代码生成在对应的工作目录

把生成的代码拷至对应的工作目录
添加创建时间、修改时间自动填充配置

package com.home.component;/**
 * @author chenxf
 * @date 2022/5/6 15:57
 */

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/**
 * @author chenxf
 * @date 2022/5/6 15:57
 */
@Slf4j
@Component
public class BaseHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("start insert fill ....");
        this.fillStrategy(metaObject, "createTime", LocalDateTime.now());
        this.fillStrategy(metaObject, "updateTime", LocalDateTime.now());
        //TODO set createBy
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("start update fill ....");
        this.fillStrategy(metaObject, "updateTime", LocalDateTime.now());
        //TODO set updateBy
    }
}

启动 测试

访问swagger测试相应接口
http://127.0.0.1:10089/doc.html

参考资料
https://baomidou.com/pages/24112f/

到此这篇关于mybatis plus自动生成代码的示例代码的文章就介绍到这了,更多相关mybatis plus自动生成代码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mybatis mybatis-plus-generator+clickhouse自动生成代码案例详解

    目录 依赖 配置 CodeGenerator mybatis-plus-generator + clickhouse 自动生成代码 依赖 <!--> mybatis-plus </!--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1

  • mybatis-plus自动生成代码的示例代码

    一.介绍 本教程将介绍如何使用 mybatis-plus 工具自动给我们生成 Controller.Service.Entity.Mapper.Mapper.xml 层代码 要求: ① 生成的Controller类,需要继承 BaseController ② 生成的Entity 类,需要继承 BaseEntity ③ 生成的 Service,默认名称下是以 I 开头的接口, 在生成Service层代码中需要把这个 I 去掉 二.实现步骤 ① 在数据库中创建好 数据库 与 要生成代码对应的表 这里

  • MyBatis-plus+达梦数据库实现自动生成代码的示例

    先说点什么 mybatis-plus是一款增强版的mybatis,功能强大,可以很大程度的简化开发. 然而达梦数据库比较小众,虽然官方说mybatis-plus支持达梦数据库,但是使用起来遇到了很多问题. 这篇文章主要讲如何使用mybatis-plus访问达梦数据库,并使用逆向工程自动生成代码. =.=对了 这是个使用spring boot的项目. (配置)POM文件,引入所需要的依赖 <dependencies> <dependency> <groupId>org.s

  • 使用MyBatisPlus自动生成代码后tomcat运行报错的问题及解决方法

    自动生成的代码 报错 解决办法:把自动xml文件中自动生成的二级缓存注释掉 总结 到此这篇关于使用MyBatisPlus自动生成代码后tomcat运行报错的问题及解决方法的文章就介绍到这了,更多相关MyBatisPlus自动生成代码tomcat运行报错内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • mybatis plus自动生成代码的示例代码

    写一个简单的mybatis plus插件自动生成代码的例子 pom.xml 添加配置 <!-- mybatis plus 插件--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency>

  • MyBatis框架之mybatis逆向工程自动生成代码

    Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件. 逆向工程 1.什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml.po..) 企业实际开发中,常用的逆向工程方式: 由于数据库的表生成java代码. 2.下载逆向工程 my

  • Spring和MyBatis整合自动生成代码里面text类型遇到的坑

    Spring和MyBatis整合以后,使用自动生成代码工具生成dao和mapper配置文件,生成步骤如下(以Intelli idea为例). 1.编写生成代码配置文件generatorConfig.xml. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator

  • IDEA Maven Mybatis generator 自动生成代码(实例讲解)

    IDEA Maven Mybatis generator 自动生成代码的实例讲解 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `id` varchar(100) NOT NULL, `username` varchar(20) DEFAULT NULL, `password` varchar(20) DEFAULT

  • SpringBoot整合Mybatis Generator自动生成代码

    目录 1.创建SpringBoot项目 2. mybatis-generator-maven插件的配置 3. 项目结构构建 4. application.yml配置 5. generatorConfig.xml配置 7. 选择 Mybatis Generator 启动,自动在dao.entity.mapper包下生成代码 Mybatis是目前主流的ORM框架,相比于hibernate的全自动,它是半自动化需要手写sql语句.接口.实体对象,后来推出的Generator自动生成代码,可以帮我们提高

  • Springboot Mybatis Plus自动生成工具类详解代码

    前言 代码生成器,也叫逆向工程,是根据数据库里的表结构,自动生成对应的实体类.映射文件和接口. 看到很多小伙伴在为数据库生成实体类发愁,现分享给大家,提高开发效率. 一.pom依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version> &

  • SpringBoot+MyBatis+AOP实现读写分离的示例代码

    目录 一. MySQL 读写分离 1.1.如何实现 MySQL 的读写分离? 1.2.MySQL 主从复制原理? 1.3.MySQL 主从同步延时问题(精华) 二.SpringBoot+AOP+MyBatis实现MySQL读写分离 2.1.AbstractRoutingDataSource 2.2.如何切换数据源 2.3.如何选择数据源 三 .代码实现 3.0.工程目录结构 3.1.引入Maven依赖 3.2.编写配置文件,配置主从数据源 3.3.Enum类,定义主库从库 3.4.ThreadL

  • Mybatis-plus实现主键自增和自动注入时间的示例代码

    mybatis-plus依赖导入 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> 建议使用3.3.0后的版本. 导入mybatis-plus就不用导入mybatis了,冲突! 连接数据库 sp

  • springboot整合Mybatis、JPA、Redis的示例代码

    引言 在springboot 项目中,我们是用ORM 框架来操作数据库变的非常方便.下面我们分别整合mysql ,spring data jpa 以及redis .让我们感受下快车道. 我们首先创建一个springboot 项目,创建好之后,我们来一步步的实践. 使用mybatis 引入依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-

随机推荐