mybatis-plus代码生成器,程序员偷懒神器

mybatis-plus代码生成器详细教程与代码 mybatis-plus代码生成器是一个工具类,它可以根据数据库表的结构,自动创建对应的实体类、mapper接口、mapper.xml文件、service接口和controller类。这样可以节省开发者的时间和精力,避免重复的编码工作。mybatis-plus代码生成器的使用步骤如下: 阅读详情
        <!--mybatis-plus, 注意引入了此依赖就无需再引入mybatis相关依赖, 否则可能冲突-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.0</version>
        </dependency>

        <!--mybatis-plus代码生成器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!--默认模板引擎velocity, 还支持Freemarker、Beetl, 都需要引入依赖(使用其他引擎详情见官网)-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
            <version>3.5.1</version>
        </dependency>

        <!-- 整合springfox-swagger、springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

        <!-- lombok依赖包 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
            <scope>provided</scope>
        </dependency>
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.ArrayList;
import java.util.List;

/**
 * 代码生成器
 *  作者CAN,
 */
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("CAN");//作者,开发人员
        gc.setOpen(false); // 是否打开生成的目录
        gc.setFileOverride(true); // 是否覆盖已有文件, 默认false
        gc.setServiceName("%sService"); // service 命名方式,自动生成的Service类前面会自动加前缀I, 这里( %s 为占位符)取消I前缀
        gc.setIdType(IdType.AUTO); // 指定生成的主键的ID类型
        gc.setDateType(DateType.ONLY_DATE); // 数据库中的时间类型对应的java类, 此设置表示Date类, 默认是java8的时间类
//        gc.setSwagger2(true); //实体属性 Swagger2 注解,需要配置Swagger2依赖
        mpg.setGlobalConfig(gc);

        // 数据源配置,通过该配置,指定需要生成代码的具体数据库
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://127.0.0.1:3306/notbug?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true&serverTimezone=GMT%2B8");//驱动连接的URL
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");//驱动名称
        dsc.setUsername("root");//数据库连接用户名
        dsc.setPassword("123456");//数据库连接密码
        dsc.setDbType(DbType.MYSQL); // 设置数据库连接的类型
        mpg.setDataSource(dsc);

        // 包名配置,通过该配置,指定生成代码的包路径
        PackageConfig pc = new PackageConfig();
        pc.setModuleName(null); // 模块路径(子路径)
        pc.setParent("com.gc.demo"); // 生成的代码的父路径
        pc.setEntity("entity"); // 生成实体类所在的包名
        pc.setMapper("mapper");
        pc.setService("service");
        pc.setController("controller");
        mpg.setPackageInfo(pc);

        // 数据库表配置,通过该配置,可指定需要生成哪些表或者排除哪些表
        StrategyConfig strategy = new StrategyConfig();
        strategy.setInclude("user_role"); // 要生成的表在数据库中的名称, 每张表名以英文逗号隔开,例: ("user","system_log")
        strategy.setNaming(NamingStrategy.underline_to_camel); // 表名转换方式: 数据库中的下划线转成java驼峰
        strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 列名转换方式
        strategy.setEntityLombokModel(true); // 自动加上lombok注解
        strategy.setRestControllerStyle(true); // 加上@RestController注解
//        strategy.setEntityTableFieldAnnotationEnable(true); // 为实体类的类上加@TableName, 所有字段上加注解
        strategy.setControllerMappingHyphenStyle(false); // RequestMapping种的驼峰是否转成用"-"连接, 默认是false
//        strategy.setTablePrefix("tp_"); // 按照表名生成实体类时去掉表名前面的"tp_"前缀
         strategy.setLogicDeleteFieldName("is_del"); // 数据库中表示逻辑删除的字段名
        // strategy.setVersionFieldName("version"); // 数据库中表示乐观锁版本号的字段名

        // 自动填充配置: 插入时间, 最后一次更新时间
        ArrayList<TableFill> tableFills = new ArrayList<>();
        TableFill gmtCreate = new TableFill("created_time", FieldFill.INSERT); // 插入时改变的时间纪录, created为表的字段名
        TableFill gmtModified = new TableFill("updated_time", FieldFill.INSERT_UPDATE); // 最后一次更新时updated表字段的时间记录
        tableFills.add(gmtCreate);
        tableFills.add(gmtModified);
        strategy.setTableFillList(tableFills);

        mpg.setStrategy(strategy);

        // 注入配置,通过该配置,可注入自定义参数等操作以实现个性化操作(自定义配置, 将Mapper.xml文件生成到resources目录下)
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };

        // 如果模板引擎是 velocity
        String templatePath = "/templates/mapper.xml.vm";

        // 自定义输出配置
        List<FileOutConfig> focList = new ArrayList<>();
        // 自定义配置会被优先输出
        focList.add(new FileOutConfig(templatePath) {
            @Override
            public String outputFile(TableInfo tableInfo) {
                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
                return projectPath + "/src/main/resources/mapper/"
                        + "/" + tableInfo.getEntityName()
                        + "Mapper"
                        + StringPool.DOT_XML;
            }
        });

        cfg.setFileOutConfigList(focList);
        mpg.setCfg(cfg);

        // 模板配置,可自定义代码生成的模板,实现个性化操作
        TemplateConfig templateConfig = new TemplateConfig();
        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);

        mpg.execute();//执行
    }
}

MyBatis-Plus 代码生成器基础入门》 MyBatis-Plus 是一个 MyBatis 的增强工具,旨在简化开发、提高效率。它在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus 提供了代码生成器功能,可以快速地根据数据库表结构生成 Entity(实体类)、Mapper(映射器接口)、Service(服务层接口及其实现)、Controller(控制层)等代码文件。 阅读详情

相关推荐

谷粒商城实战:基于若依框架的MyBatis-Plus代码生成器深度改造指南

本文详细介绍了如何对若依框架的代码生成器进行深度改造,使其生成符合MyBatis-Plus风格的代码。通过替换Velocity模板,将实体类、Mapper、Service及Controller层代码优化为继承MP基类的简洁形式,并整合Lombok与公共字段自动填充,大幅提升在谷粒商城等项目中开发商品分类等模块的效率与代码质量。

ttt77的博客 678

Java框架快速入门: MyBatis-Plus 代码生成器实战

本文详细介绍了MyBatis-Plus代码生成器(AutoGenerator)的使用方法。代码生成器通过读取数据库表结构,结合开发者配置和内置模板,自动生成实体类、Mapper接口、Service层等标准代码,可大幅提升开发效率。 文章从核心原理、环境搭建开始讲解,逐步深入配置细节,包括: 数据源配置(DataSourceConfig):设置数据库连接信息 全局配置(GlobalConfig):控制输出目录、作者信息、文件覆盖等 包名配置(PackageConfig):定义生成代码的包结构 策略配置(Str

Wang的专栏 391

MyBatis-Plus 自定义代码生成器

MyBatis-Plus 是一个开源的 MyBatis 增强工具,为我们提供了更简洁、高效的开发方式。其中的代码生成器是其重要的功能之一,可以帮助开发者快速生成 MyBatis 的实体类、Mapper 接口以及对应的 XML 文件。然而,有时我们需要根据自己的需求对代码生成器进行定制化,本文将介绍如何自定义 MyBatis-Plus代码生成器。接下来,我们创建一个自定义的代码生成器类,继承自 MyBatis-Plus 的 AutoGenerator 类。// TODO: 添加自定义的代码生成逻辑。

理论都是虚的,代码才是王道。 765

MyBatis-Plus代码生成器(新)使用

如何一键实现springboot基础代码完全实现,一篇文章给你参考,提高开发效率!

Young_深情不及里子的博客 2万+

Mybatis-plus-代码生成器-官网学习

Mybatis-plus -- 快速入门简介特性功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 简介 mybatismybatis-plus之间有什么区别?首先mybatis-plus只是在mybatis的基础上只做增加没有做修

weixin_42517021的博客 6472

使用MyBatis Plus代码生成器一键生成代码

前言  在开发项目时,前期数据库的实体类,都需要自己一个一个的去建。假如一个项目的数据库有一百张表,那就要建一百个实体类,这样可能会把程序猿给累死。所以MyBatis Plus的程序猿们就开发了一套这个偷懒神器,一键生成controller、entity、mapper和service,话不多说,下面开始,go go go。 配置 pom文件 <!-- 引入MyBatis Plus启动器 --> <dependency> <groupI

fate2021fate的博客 430

Mybatis-Plus入门详解及使用

** Mybatis-Plus入门全解 (懒人必备神器哦!值得大家去学习哦,提高效率) 本篇Mybatis-plus是跟着狂神老师的视频去敲的笔记哟,狂神老师的视频讲解十分的详细且通俗易懂, 视频路径如下https://www.bilibili.com/video/BV17E411N7KN?p=2,大家也可以跟着狂神老师的视频去边敲边看哦! 在学习Mybatis-Plus之前,我们需要先提前学习完Mybatis、Spring、SpringMVC再去学习Mybatis-PlusMybatis-...

qq_54769967的博客 7441

Mybatis Plus代码生成器

mybatisplus_04_generator项目中对于MyBatis的环境是没有进行配置,如果想要运行,需要提取将配置文件中的内容进行完善后再运行。所以我们会发现,做任何模块的开发,对于这段代码,基本上都是对红色部分的调整,所以我们把去掉红色内容的东西称之为。修改以后的好处是,MP已经帮我们把业务层的一些基础的增删改查都已经实现了,可以直接进行使用。至此代码生成器就已经完成工作,我们能快速根据数据库表来创建对应的类,简化我们的代码开发。运行成功后,会在当前项目中生成很多代码代码包含。

coderge's CSDN Blog. 4460

MyBatis-Plus代码生成器

实体类:对应数据库表的 Java 实体类。Mapper 接口:用于数据库访问的 Mapper 接口。Mapper XML:与 Mapper 接口对应的 SQL 映射文件(可选)。Service 和 ServiceImpl:业务逻辑层的接口和实现类。Controller:处理 HTTP 请求的控制层代码(可选)。通过代码生成器,开发者只需要配置好数据库连接和表名等信息,即可自动生成一套基础的代码结构,节省大量重复性工作。可以通过方法指定代码生成的输出路径。

Flying_Fish_roe的博客 7017

mybatis-plus代码生成器

MyBatis-Plus 代码生成器是一个自动化工具,用于快速生成。

m0_74140204的博客 6049

MybatisPlus代码生成器

代码生成器基本使用

java源码基础分享 4175

MyBatis-Plus代码生成器(最新版适合新手跟做)

本文介绍了mybatis-plus3.5.1后的代码生成器的使用,适合新手一步一步的按照操作进行,没有雷点。

qq_62325622的博客 1万+

Mybatis-Plus代码生成器

Mybatis-Plus代码生成器

m0_66403070的博客 1334

mybatis-plus-generator代码生成器

利用mybatis-plus-generator生成DTO、DO、VO、BO、Query对象,自定义模板生成mapper、service、controller文件

失之东隅,收之桑榆 1115

MyBatis-Plus——代码自动生成器

回想我们之前进行开发的过程,首先我们需要编写与数据库表对应的实体类,接着再进行创建各种层次的包(mapper,service,impl),这个过程是不是感觉特别漫长呢,而现在一款神器MpBatis-Plus代码自动生成器。一、介绍代码自动生成器非常好用,我们只需要提供我们数据库的表名,然后就可以让生成器自动帮我们完成各种代码的创建,整个过程非常清爽,可以说是加班人的福利!现在我们就来讲解怎么搭建这个代码自动生成器!...

m0_67402235的博客 5029

MyBatisPlus代码生成器(CodeGenerator)

代码生成器mybatisplus提供的一项功能,能直接根据一个数据库里面的所以表进行直接生成相应的entity、mapper、service、serviceImpl、controller类。

weilaaer的博客 4238
上一篇: BeanUtils.copyProperties()浅拷贝,属性相同拷贝
下一篇: shiro用户登录密码错误超过次数,冻结账号30分钟
HZ-CAN
博客等级 码龄6年 1粉丝 · 7原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值