MyBatis-Plus代码生成器

本文介绍如何使用MyBatis-Plus代码生成器快速生成SpringBoot项目的CRUD代码,包括创建工程、配置全局参数、数据源、包结构及代码生成策略。

MP 代码生成器

准备工作

  • 创建 springboot 工程,导入相关依赖

        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
            <!-- mybatis-plus -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.4.0</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <!-- 代码生成器 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-generator</artifactId>
                <version>3.4.1</version>
            </dependency>
    
            <!-- 模板引擎 -->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>2.3</version>
            </dependency>
        </dependencies>
    
  • 创建一个AutoMapper类

    package com.cmy;
    
    import com.baomidou.mybatisplus.generator.AutoGenerator;
    
    public class AutoMapper {
        public static void main(String[] args) {
            // 创建 AutoGenerate ,MP 中的对象
            AutoGenerator autoGenerator = new AutoGenerator();
        }
    

全局配置

// 设置全局配置
GlobalConfig globalConfig = new GlobalConfig();
// 设置代码生成的位置
String path = System.getProperty("user.dir");
globalConfig.setOutputDir(path + "/src" + "/main" + "/java");
// 设置生成的类的名称(命名规则)
globalConfig.setMapperName("%sMapper"); // 所有的 Dao 类都是以 Mapper 结尾的
// 设置 Service 接口的名称
globalConfig.setServiceName("%sService");
// 设置 Service 实现类的名称
globalConfig.setServiceImplName("%sServiceImpl");
// 设置 Controller 类
globalConfig.setControllerName("%sController");
// 设置作者
globalConfig.setAuthor("chenmingyong");
// 设置主键 id 的配置
globalConfig.setIdType(IdType.AUTO);

// 将 globalConfig 配置添加到 autoGenerator里面
autoGenerator.setGlobalConfig(globalConfig);

数据源配置

// 设置数据源DataSource
DataSourceConfig dataSourceConfig = new DataSourceConfig();
// 驱动
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
// 设置 url
dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1/mybatisplus?useUnicode=true&characterEncoding=utf-8");
// 设置数据库的用户名
dataSourceConfig.setUsername("root");
// 设置数据库的密码
dataSourceConfig.setPassword("root");

// 将 dataSourceConfig 配置添加到 autoGenerator里面
autoGenerator.setDataSource(dataSourceConfig);

包配置

// 设置 Package 信息
PackageConfig packageConfig = new PackageConfig();
// 设置模块名称,相当于包名,在这个包下面有 mapper, service, controller
packageConfig.setModuleName("order"); // 比如模块是订单模块
// 设置父包的名称
packageConfig.setParent("com.cmy"); // com.cmy.order

// 将 packageConfig 配置添加到 autoGenerator里面
autoGenerator.setPackageInfo(packageConfig);

设置策略

// 设置策略
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
// 设置支持驼峰命名规则
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);

// 将 strategyConfig 配置添加到 autoGenerator里面
autoGenerator.setStrategy(strategyConfig);

全部代码

package com.cmy;

import com.baomidou.mybatisplus.annotation.IdType;
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 AutoMapper {
    public static void main(String[] args) {
        // 创建 AutoGenerate ,MP 中的对象
        AutoGenerator autoGenerator = new AutoGenerator();

        // 设置全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        // 设置代码生成的位置
        String path = System.getProperty("user.dir");
        globalConfig.setOutputDir(path + "/src" + "/main" + "/java");
        // 设置生成的类的名称(命名规则)
        globalConfig.setMapperName("%sMapper"); // 所有的 Dao 类都是以 Mapper 结尾的
        // 设置 Service 接口的名称
        globalConfig.setServiceName("%sService");
        // 设置 Service 实现类的名称
        globalConfig.setServiceImplName("%sServiceImpl");
        // 设置 Controller 类
        globalConfig.setControllerName("%sController");
        // 设置作者
        globalConfig.setAuthor("chenmingyong");
        // 设置主键 id 的配置
        globalConfig.setIdType(IdType.AUTO);

        // 将 globalConfig 配置添加到 autoGenerator里面
        autoGenerator.setGlobalConfig(globalConfig);

        // 设置数据源DataSource
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        // 驱动
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        // 设置 url
        dataSourceConfig.setUrl("jdbc:mysql://127.0.0.1/mybatisplus?useUnicode=true&characterEncoding=utf-8");
        // 设置数据库的用户名
        dataSourceConfig.setUsername("root");
        // 设置数据库的密码
        dataSourceConfig.setPassword("root");

        // 将 dataSourceConfig 配置添加到 autoGenerator里面
        autoGenerator.setDataSource(dataSourceConfig);

        // 设置 Package 信息
        PackageConfig packageConfig = new PackageConfig();
        // 设置模块名称,相当于包名,在这个包下面有 mapper, service, controller
        packageConfig.setModuleName("order"); // 比如模块是订单模块
        // 设置父包的名称
        packageConfig.setParent("com.cmy"); // com.cmy.order

        // 将 packageConfig 配置添加到 autoGenerator里面
        autoGenerator.setPackageInfo(packageConfig);

        // 设置策略
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        // 设置支持驼峰命名规则
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);

        // 将 strategyConfig 配置添加到 autoGenerator里面
        autoGenerator.setStrategy(strategyConfig);

        // 执行代码生成
        autoGenerator.execute();
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员陈_明勇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值