Springboot项目整合Mybatis-plus如何使用代码生成器以velocity为模板自动生成代码

本文介绍了在Mybatis-Plus中如何使用Velocity模板进行代码自动生成,包括添加依赖、设置参数如数据源、全局配置、包结构和策略配置,以及执行生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在mybatis-plus中,可以使用模板来进行代码的自动生成,在mybatis-plus中默认使用的模板是velocity模板,下面就以这个模板作为例子来演示如何进行代码的自动生产。

使用步骤:

1、添加依赖

<!--        代码生成器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.4.1</version>
        </dependency>
<!--        velocity模板引擎-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>

2、新建一个类,并给出一个main方法:

在这里插入图片描述

3、根据需求设置参数

public static void main(String[] args) {

        AutoGenerator autoGenerator = new AutoGenerator();

        DataSourceConfig dataSource = new DataSourceConfig();
        dataSource.setDriverName(数据库连接); //MySql为com.mysql.cj.jdbc.Driver
        dataSource.setUrl(连接地址); //jdbc:mysql://localhost:3306/数据库名称?serverTimezone=UTC
        dataSource.setUsername(数据库连接名);
        dataSource.setPassword(数据库连接密码);
        autoGenerator.setDataSource(dataSource);

        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir(System.getProperty("user.dir")+"/***/src/main/java") //生成文件的路径,默认生成到D盘根目录,{***}处为Module的名称
                .setOpen(false) //生成后是否打开所在的目录
                .setAuthor("****")          //设置代码的作者
                .setFileOverride(true)      //是否覆盖原文件
                .setMapperName("%sMapper")      //设置Mapper文件名,%s为占位符
                .setIdType(IdType.ASSIGN_ID);           //ID生成策略
        autoGenerator.setGlobalConfig(globalConfig);

        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.example")   //设置所在的包
                .setEntity("entity")            //设置所在的实体类包名
                .setMapper("mapper");           //设置数据层包名
        autoGenerator.setPackageInfo(packageConfig);

//        在mybatis-plus中默认使用velocity,所以此处不用配置
//        autoGenerator.setTemplateEngine();
//        autoGenerator.setTemplate();

        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setInclude("tb_book","tb_order")    //需要生成的表,这里是可变参数,中间中逗号隔开
                .setTablePrefix("tb_")              //表的前缀
                .setRestControllerStyle(true)           //是否启用Rest风格
                .setVersionFieldName("version")         //乐观锁的字段名
                .setLogicDeleteFieldName("deleted")         //逻辑删除字段名
                .setEntityLombokModel(true);        //是否启用lombok
        autoGenerator.setStrategy(strategyConfig);

        autoGenerator.execute();
    }
### 集成 MyBatis-Plus使用代码生成器 #### 创建 Spring Boot 项目 为了在 Spring Boot 中集成 MyBatis-Plus 和其代码生成器,首先需要创建一个新的 Spring Boot 应用程序。可以通过 Spring Initializr 或者其他方式来初始化这个应用程序。 #### 添加依赖项 接着,在 `pom.xml` 文件中添加必要的 Maven 依赖项以支持 MyBatis-Plus 及其自动代码生成功能: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <!-- 如果想要使用 MySQL 数据库 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- 自动化代码生成所需的依赖 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> </dependency> ``` 以上配置确保了可以顺利引入 MyBatis-Plus 功能模块以及用于模板渲染的 Velocity 工具[^1]。 #### 启用 Mapper 扫描 为了让 Spring 能够识别所有的 Mapper 接口文件,在项目的启动类上加上 `@MapperScan` 注解指定扫描路径: ```java package com.example.demo; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.example.demo.mapper") // 替换成自己的 mapper 包名 public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 这段代码展示了如何通过设置 `@MapperScan` 来让 SpringBoot 容器能够找到并注册所有定义好的 Mapper 类型[^5]。 #### 使用 AutoGenerator 进行代码生成 现在准备好执行自动化代码生成过程。下面是一个简单的例子展示怎样利用 MyBatis-Plus 提供的 `AutoGenerator` API 构建实体类、Mapper 接口和服务层接口等基础结构: ```java import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; // ... 导入其余所需组件 ... public class CodeGenerator { public static void main(String[] args) { String projectPath = System.getProperty("user.dir"); GlobalConfig gc = new GlobalConfig(); gc.setOutputDir(projectPath + "/src/main/java"); // 设置输出目录 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("password"); StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); // 表明采用下划线转驼峰命名法 strategy.setColumnNaming(NamingStrategy.underline_to_camel); strategy.setEntityLombokModel(true).setRestControllerStyle(true); PackageConfig pc = new PackageConfig(); pc.setParent("com.example.demo").setModuleName(null); new AutoGenerator().setGlobalConfig(gc) .setDataSource(dsc) .setPackageInfo(pc) .setStrategy(strategy) .execute(); // 开始自动生成代码 } } ``` 上述 Java 程序片段说明了如何配置数据源连接参数,并指定了目标包的位置和其他策略选项(比如表名转换规则),最后调用了 execute 方法触发整个生成流程[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值