前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MybatisPlus代码生成器

MybatisPlus代码生成器

作者头像
摸鱼的G
发布2024-01-18 09:18:01
920
发布2024-01-18 09:18:01
举报
文章被收录于专栏:火属性小虫火属性小虫
MybatisPlus代码生成器

MybatisPlus存在代码生成器,能够根据数据库做到代码的一键生成。

首先我们创建一新的项目,接着导入依赖:

代码语言:javascript
复制
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.3.1</version>
</dependency>
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.3</version>
</dependency>

然后配置一下数据源:

代码语言:javascript
复制
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

接着就可以编写自动生成脚本,这里选择测试类,用到FastAutoGenerator作为生成器:

代码语言:javascript
复制
@Configurable
class DemoApplicationTests {
    @Resource
    DataSource dataSource;
    @Test
    void contextLoads() {
        FastAutoGenerator
                .create(new DataSourceConfig.Builder(dataSource))
                // 配置一下全局设置
                .globalConfig(builder -> {
                    builder.author("lbw");              //作者信息,一会会变成注释
                    builder.commentDate("2024-01-01");  //日期信息,一会会变成注释
                    builder.outputDir("src/main/java"); //输出目录设置为当前项目的目录

                })
                // 配置打包设置,也就是项目生成的包
                .packageConfig(builder -> builder.parent("com.example"))
                .strategyConfig(builder -> {
                    builder
                            .mapperBuilder()
                            .mapperAnnotation(Mapper.class)
                            .build();
                })
                .execute();

    }
}

之后我们就可以运行这个脚本,代码生成器会自动生成从Mapper到Controller的所有代码,我们就只需要去完成业务逻辑就可以了。

对于一些有特殊要求的用户来说,我们希望能够以自己的模版来进行生产,怎么才能修改它自动生成的代码模版呢,我们可以直接找到mybatis-plus-generator的源码:

生成模版都在在这个里面有写,我们要做的就是去修改这些模版,变成我们自己希望的样子,由于默认的模版解析引擎为Velocity,我们需要复制以.vm结尾的文件到resource随便一个目录中,然后随便改:

接着我们配置一下模版:

代码语言:javascript
复制
@Test
void contextLoads() {
    FastAutoGenerator
            ...
      			.strategyConfig(builder -> {
                builder
                        .mapperBuilder()
                        .enableFileOverride()   //开启文件重写,自动覆盖新的
                        .mapperAnnotation(Mapper.class)
                        .build();
            })
            .templateConfig(builder -> {
                    builder.controller("/template/controller.java.vm");
            })
            .execute();
}

这样,新生成的代码中就是按照我们自己的模版来定义了,需要修改其他类模版只需要调用不同的builder的方法就行了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MybatisPlus代码生成器
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档