iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis-plus使用generator实现逆向工程
  • 147
分享到

mybatis-plus使用generator实现逆向工程

2024-04-02 19:04:59 147人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.背景2.引入jar包3.自动生成代码4.修改*Mapper.xml文件的生成位置4.1 默认*Mapper.xml文件生成位置4.2 修改*Mapper.xml文件生成位置1

1.背景

可以使用mybatis-plus-generator逆向生成dao层、service层、controller层等代码

2.引入jar包

mybatis-plus-generator在3.5.0以及以后的版本使用新的方式逆向生成代码。

这里介绍使用旧版本的方式生成代码。

    <!-- mybatis-plus begin -->
    <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
    </dependency>
    <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.4.1</version>
    </dependency>
    <dependency>
            <groupId>Mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.44</version>
    </dependency>

    <!-- mybatis-plus 默认是vm引擎 -->
    <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
    </dependency>
    <!-- mybatis-plus end -->

3.自动生成代码

    public static void main(String[] args) {
        // 构建一个代码生成器对象
        AutoGenerator mpg = new AutoGenerator();
        // 配置执行策略
        // 1.全局配置
        GlobalConfig GC = new GlobalConfig();
        // 当前项目路径
        String proPath = System.getProperty("user.dir");
        // 设置代码生成路径
        gc.setOutputDir(proPath + "/src/main/java");
        // 生成的类的注释中作者信息
        gc.setAuthor("curry");
        // 生成后是否打开文件夹
        gc.setOpen(false);
        // 是否覆盖
        gc.setFileOverride(true);
        // 生成service类的后缀
        gc.setServiceName("%sService");
        // 主键生成策略 和数据库id生成策略一致
        gc.setIdType(IdType.AUTO);
        // 设置日期类型
        gc.setDateType(DateType.ONLY_DATE);
        // 是否生成swagger
        gc.setSwagger2(false);
        // 生成entity类的后缀
        gc.setEntityName("%sEntity");
        mpg.setGlobalConfig(gc);

        // 2.设置数据源
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://127.0.0.1:3306/test_db");
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("123456");
        dsc.setDbType(DbType.MYSQL);
        mpg.setDataSource(dsc);

        // 3.配置生成包的路径
        PackageConfig pc = new PackageConfig();
        // 设置模块存放位置
        pc.setParent("com.");
        // 设置该模块包的路径
        pc.setModuleName("dao");
        pc.setEntity("entity");
        pc.setMapper("mapper");
        pc.setService("service");
        pc.setController("controller");
        mpg.setPackageInfo(pc);

        // 4.策略配置
        StrategyConfig strategy=new StrategyConfig();
        // 设置要映射的表名 不配置默认处理全部表
        // strategy.setInclude("user");
        // 表名中下划线转驼峰命名
        strategy.setNaming(NamingStrategy.underline_to_camel);
        // 表中字段如果有下划线,转驼峰命名
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        // strategy.setEntityLombokModel(true);//自动生成Lombok
        // strategy.setRestControllerStyle(true);//开启 RestFul 风格
        // strategy.setControllerMappingHyphenStyle(true);
        // 对表中的字段 设置逻辑删除 生成的dao层代码会添加@TableLogic
        strategy.setLogicDeleteFieldName("delete_flag");

        // 5.自动填充 (表中如果有创建时间、修改时间话,可以使用自动填充)
        TableFill createTime = new TableFill("created_date", FieldFill.INSERT);
        TableFill updateTime = new TableFill("modified_date", FieldFill.INSERT_UPDATE);
        ArrayList<TableFill> tableFills = new ArrayList<>();
        tableFills.add(createTime);
        tableFills.add(updateTime);
        strategy.setTableFillList(tableFills);
        // 乐观配置
        // strategy.setVersionFieldName("version");
        mpg.setStrategy(strategy);

        // 6.配置实体类模板
        TemplateConfig templateConfig = new TemplateConfig();

        // 如果setXxxxx(null) 不会生成Xxxx实体类相关代码
        // 因此如果只生成dao层代码
        // 可以在这里控制
        templateConfig.setController(null);
        templateConfig.setMapper(null);
        templateConfig.setService(null);
        templateConfig.setServiceImpl(null);
        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);

        // 7.执行代码生成操作
        mpg.execute();
    }

4.修改*Mapper.xml文件的生成位置

4.1 默认*Mapper.xml文件生成位置

    // 3.配置生成包的路径
    PackageConfig pc = new PackageConfig();
    // 设置模块存放位置
    pc.setParent("com.");
    // 设置该模块包的路径
    pc.setModuleName("dao");
    pc.setEntity("entity");
    pc.setMapper("mapper");
    pc.setService("service");
    pc.setController("controller");
    mpg.setPackageInfo(pc);

以上面代码为例,*Mapper.xml文件位置是mapper/xml/*Mapper.xml

4.2 修改*Mapper.xml文件生成位置

step1:在模板中控制不生成xml文件 防止重复生成

templateConfig.setXml(null);

step2:在第三步中mpg.execute();执行前增加以下代码

    // 自定义配置
    InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                    // to do nothing
            }
    };

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

    // 自定义输出配置
    List<FileOutConfig> focList = new ArrayList<>();
    // 自定义配置会被优先输出
    // 这里自定义配置的是*Mapper.xml文件
    // 所以templatePath = "/templates/mapper.xml.vm";
    // 如果你想自定义配置其它 修改templatePath即可
    focList.add(new FileOutConfig(templatePath) {
            @Override
            public String outputFile(TableInfo tableInfo) {
                    // 自定义输出文件名 如果你 Entity 设置了前后缀
                    String entityName = tableInfo.getEntityName();
                    int length = entityName.length();
                    entityName = entityName.substring(0, length - 6);
                    return proPath + "/src/main/resources/mapper/" + 
                            entityName + "Mapper" + StringPool.DOT_XML;
            }
    });

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

到此这篇关于mybatis-plus使用generator实现逆向工程的文章就介绍到这了,更多相关mybatis-plus generator 逆向工程内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: mybatis-plus使用generator实现逆向工程

本文链接: https://www.lsjlt.com/news/148262.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mybatis-plus使用generator实现逆向工程
    目录1.背景2.引入jar包3.自动生成代码4.修改*Mapper.xml文件的生成位置4.1 默认*Mapper.xml文件生成位置4.2 修改*Mapper.xml文件生成位置1...
    99+
    2024-04-02
  • Mybatis Plus 逆向工程介绍
    目录一、创建数据库二、配置pom.xml 文件三、在项目同级目录建立mgb.xml四、在测试类中写入方法一、创建数据库 二、配置pom.xml 文件    <dependen...
    99+
    2024-04-02
  • Mybatis Plus逆向工程的示例分析
    这篇文章主要介绍Mybatis Plus逆向工程的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、创建数据库注:给tbl_emp的表创建外键数据库以及表的建立:二、配置pom.xml 文件&nbs...
    99+
    2023-06-26
  • Mybatis技术的使用一:逆向工程
    目录 一、什么是Mybatis的逆向工程: 1.正常流程: 2.加入Mybatis逆向工程后的流程: 二、优缺点: 三、使用步骤: 1、创建Maven工程,完善工程结构  2、引入pom依赖 3、创建逆向工程的配置文件 gener...
    99+
    2023-09-23
    数据库 database mysql maven java
  • idea使用Mybatis逆向工程插件详情
    目录一、使用mybatis连接数据库二、安装Better-Mybatis-Generator插件三、关于example类详解1、example成员变量2、example使用一、使用m...
    99+
    2024-04-02
  • idea怎么使用Mybatis逆向工程插件
    idea怎么使用Mybatis逆向工程插件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、使用mybatis连接数据库添加连接的mysql的信息,测试链接成功...
    99+
    2023-06-22
  • MyBatis命令行实现逆向工程的示例
    这篇文章主要介绍了MyBatis命令行实现逆向工程的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.MyBatis逆向工程介绍在开发过...
    99+
    2024-04-02
  • MyBatis中的逆向工程是什么
    MyBatis中的逆向工程是一种自动化工具,用于根据数据库表结构生成对应的Java实体类、Mapper接口和Mapper.xml文件...
    99+
    2024-03-07
    MyBatis
  • SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper实例详解
    一、添加所需依赖,当前完整的pom文件如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-...
    99+
    2023-05-31
    spring boot mybatis
  • MyBatis中逆向工程的示例分析
    这篇文章主要介绍了MyBatis中逆向工程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MyBatis的逆向工程一:什么是逆行工程...
    99+
    2024-04-02
  • 利用MyBatis如何创建一个逆向工程
    利用MyBatis如何创建一个逆向工程?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.什么是逆向工程mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程...
    99+
    2023-05-31
    mybatis 逆向工程
  • SpringBoot项目使用mybatis-plus逆向自动生成全套代码
    目录1.在你的SpringBoot项目下新建子模块项目2.在此模块下新建一个包与一个java类 类名: CodeGenerator3.在 resources 下新建 文件夹,用来存放...
    99+
    2024-04-02
  • 基于mybatis逆向工程的示例分析
    这篇文章给大家分享的是有关基于mybatis逆向工程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用mybatis生成逆向工程的详细步骤,我个人感觉这个是最简单的一个了,虽然网上有很多种的方法来生成逆...
    99+
    2023-05-30
    mybatis
  • MyBatis逆向工程指的是什么意思
    MyBatis逆向工程指的是根据数据库表结构自动生成对应的实体类、Mapper接口和XML映射文件的过程。通过逆向工程工具,开发人员...
    99+
    2024-03-07
    MyBatis
  • mybatis-generator-gui工具使用(图形化工具)
    目录一、GIT 官网地址:二、下载代码并编译三、使用 mybatis-generator-gui一、GIT 官网地址: 传送门 mybatis-generator-gui图形化工具...
    99+
    2024-04-02
  • 基于mybatis-plus-generator实现代码自动生成器
    目录1.引入依赖2.简单的代码生成3.自定义模板生成代码3.1实现思路3.2定义代码生成常量3.3全局配置3.4定义生成代码模板的路径3.5定义各文件生成存储路径3.6数据源配置3....
    99+
    2024-04-02
  • Spring Boot中怎么利用MybatisPlus实现逆向工程
    这篇文章将为大家详细讲解有关Spring Boot中怎么利用MybatisPlus实现逆向工程,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 一、创建表  我们先创建数据库表:sys_log...
    99+
    2023-06-20
  • Docker镜像的逆向工程怎么实现
    这篇文章主要讲解了“Docker镜像的逆向工程怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker镜像的逆向工程怎么实现”吧!首先,让 Docker 守护进程daem...
    99+
    2023-06-15
  • MyBatis逆向工程生成dao层增删改查的操作
    目录MyBatis逆向工程生成dao层增删改查如下:Mybatis反向工程的使用首先,用eclipse 建一个maven 项目这时我们的项目结构是这个样子的现在要写一下代码了例如,我...
    99+
    2024-04-02
  • MyBatis-Plus工具使用之EntityWrapper解析
    目录EntityWrapper使用解析EntityWrapper源码解读EntityWrapper使用解析 1、项目中引入jar包,我这里使用Maven构建 <dependen...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作