Mybatis-Plus代码生成器

举报
奇遇少年 发表于 2024/02/06 09:21:39 2024/02/06
【摘要】 Mybatis-Plus代码生成器是Mybatis-Plus框架提供的一项功能强大的工具,旨在简化数据库访问层的开发。

引言

在现代软件开发中,自动生成代码是一项重要的工程实践,能够显著提高开发效率、降低出错概率。Mybatis-Plus代码生成器作为Mybatis-Plus框架的一部分,为开发者提供了强大的自动化代码生成功能。以帮助开发者充分利用这一神兵利器,快速构建高质量的数据库访问层。

Mybatis-Plus代码生成器简介

Mybatis-Plus代码生成器是基于Velocity模板引擎的代码生成工具,旨在简化Mybatis-Plus项目的开发流程。通过配置相关参数,开发者可以轻松生成实体类、Mapper接口以及XML映射文件,省去了大量的模板代码编写工作。

代码生成器的基本原理

Mybatis-Plus代码生成器的基本原理是通过读取用户配置,使用Velocity模板引擎生成Java类和XML文件。用户在配置中指定数据源、生成路径、包路径等信息,代码生成器根据这些配置生成对应的文件。

注意: MyBatis-Plus 支持Velocity(默认)、Freemarker、Beetl,用户可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。

使用Mybatis-Plus代码生成器的步骤

  1. 引入Mybatis-Plus依赖: 在项目中引入Mybatis-Plus的相关依赖,确保可以使用Mybatis-Plus的代码生成功能。
 <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!--代码生成-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3.1</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.2</version>
        </dependency>

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.7</version>
        </dependency>

  1. 配置代码生成器: 创建一个代码生成器类,并配置相关信息。
package com.example;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
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.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

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

public class Main {
    public static void main(String[] args) {
        AutoGenerator autoGenerator = new AutoGenerator();
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);
        dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("root");
        dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=UTF-8");
        autoGenerator.setDataSource(dataSourceConfig);
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOpen(false);
        globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");
        globalConfig.setAuthor("奇遇少年");
        globalConfig.setServiceName("%sService");
        autoGenerator.setGlobalConfig(globalConfig);
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.yu");
        packageConfig.setEntity("entity");
        packageConfig.setMapper("mapper");
        packageConfig.setController("controller");
        packageConfig.setService("service");
        packageConfig.setServiceImpl("service.impl");
        autoGenerator.setPackageInfo(packageConfig);
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setEntityLombokModel(true);
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);

        List<TableFill> list = new ArrayList<>();
        TableFill tableFill1 = new TableFill("create_time", FieldFill.INSERT);
        TableFill tableFill2 = new TableFill("update_time",FieldFill.INSERT_UPDATE);
        list.add(tableFill1);
        list.add(tableFill2);

        strategyConfig.setTableFillList(list);
        autoGenerator.setStrategy(strategyConfig);

        autoGenerator.execute();
    }
}
  1. 运行代码生成器: 在项目中运行代码生成器类,即可生成相应的Java类和XML文件。
    image.png

代码生成器的高级特性

  1. 模板定制: Mybatis-Plus代码生成器提供了默认的模板,同时也支持用户自定义模板,使得生成的代码符合项目规范和风格。
  2. 策略配置: 用户可以通过配置生成策略,包括表命名规范、字段命名规范、生成的文件类型等。
  3. 注释生成: 代码生成器支持自动生成注释,包括作者、日期、表字段注释等,提高代码的可读性和可维护性。

最佳实践与注意事项

  1. 适时更新代码: 随着业务需求的变化,及时更新生成的代码,保持代码与数据库结构的同步。
  2. 定期清理冗余代码: 生成的代码可能包含一些不再使用的部分,定期进行清理,保持代码的简洁性。
  3. 合理配置生成策略: 根据项目的实际需求,合理配置生成策略,避免生成不必要的文件。

结语

Mybatis-Plus代码生成器是提高开发效率的利器,通过合理配置和使用代码生成器,开发者可以极大地减少重复性工作,快速生成符合规范的代码,提高开发效率。在实际项目中,善用Mybatis-Plus代码生成器将为团队带来事半功倍的效果,助力构建高质量、高效率的数据库访问层。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。