代码生成器

Mybatis Generator

  • 使用xml配置文件形式自动生成
  • 只生成实体类、mapper接口及mapper.xml。并且包含丰富的内容
  • 首先添加mybatis依赖和相关插件

          org.mybatis
          mybatis
          3.5.7

              org.mybatis.generator
              mybatis-generator-maven-plugin
              1.3.0

                      org.mybatis.generator
                      mybatis-generator-core
                      1.3.2

                      com.mchange
                      c3p0
                      0.9.2

                      mysql
                      mysql-connector-java
                      5.1.8

  • 创建generatorConfig.xml配置文件,从官网中复制下来即可.其中元素标签说明卸载注释中

  • 最后在右边点击maven中插件,双击mybatis-generator:generate
  • 说明:上述两个配置文件都会报红,不用管尽管运行即可

MybatisPlus Generator

  • 使用代码形式自动生成
  • 会生成从Controller层到Dao层的所有文件,其中还包括实体类
  • 首先添加必须的依赖

    com.baomidou
    mybatis-plus-boot-starter
    3.0.5

    org.apache.velocity
    velocity-engine-core
    2.0

    org.projectlombok
    lombok
    1.18.20

  • 这里是在单元测试中运行
public class GeneratorTest{
  @Test
  public void run() {

    // 1、创建代码生成器
    AutoGenerator mpg = new AutoGenerator();

    // 2、全局配置
    GlobalConfig gc = new GlobalConfig();
    String projectPath = System.getProperty("user.dir");
    // 换成绝对路径
    gc.setOutputDir("your project absolute path" + "/src/main/java");
    gc.setAuthor("xsha_h");
    gc.setOpen(false); //生成后是否打开资源管理器
    gc.setFileOverride(false); //重新生成时文件是否覆盖
    gc.setServiceName("%sService"); //去掉Service接口的首字母I
    gc.setIdType(IdType.ID_WORKER_STR); //主键策略
    gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
    gc.setSwagger2(true);//开启Swagger2模式

    mpg.setGlobalConfig(gc);

    // 3、数据源配置
    DataSourceConfig dsc = new DataSourceConfig();

    dsc.setUrl("jdbc:mysql:///database_name?serviceTimezone=GMT%2B8");
    dsc.setDriverName("com.mysql.cj.jdbc.Driver");
    dsc.setUsername("username");
    dsc.setPassword("password");
    dsc.setDbType(DbType.MYSQL);
    mpg.setDataSource(dsc);

    // 4、包配置
    PackageConfig pc = new PackageConfig();

    // 包名  com.xsha.module_name
    pc.setParent("com.xsha");
    pc.setModuleName("module_name"); //模块名
    pc.setController("controller");
    pc.setEntity("entity");
    pc.setService("service");
    pc.setMapper("mapper");
    mpg.setPackageInfo(pc);

    // 5、策略配置
    StrategyConfig strategy = new StrategyConfig();

    // 生成表格名称对应的实体类
    strategy.setInclude("table_name1", "table_name2", "table_name3", "table_name4");
    strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
    strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀(根据需求变化)

    strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
    strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作

    strategy.setRestControllerStyle(true); //restful api风格控制器
    strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符

    mpg.setStrategy(strategy);

    // 6、执行
    mpg.execute();
  }
}
  • 运行即可生效

Original: https://www.cnblogs.com/aitiknowledge/p/16504775.html
Author: xsha_h
Title: 代码生成器

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/608533/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java面向对象之构造器

    新手菜鸟看完Java教学视频后总结的关于构造器的理解。 面向对象 构造器 从构造器的作用来理解 new的本质是在调用构造器 当我们new一个新的对象的时候,就已经是调用了一个新的构…

    Java 2023年6月9日
    070
  • [转]OpenMP中几个容易混淆的函数(线程数量/线程ID/线程最大数)以及并行区域线程数量的确定

    说明:这部分内容比较基础,主要是分析几个容易混淆的OpenMP函数,加以理解。 (1)并行区域数量的确定: 在这里,先回顾一下OpenMP的parallel并行区域线程数量的确定,…

    Java 2023年5月29日
    061
  • 从餐厅服务员到一线互联网电商程序员 (中)

    本系列文章分三部分: 上: 餐厅、洗浴会所打工经历中: 大学求学创业经历下: 互联网从业经历 本文为第二部分,关注 “真香号”,及时阅读其它篇章。 接上文:…

    Java 2023年6月7日
    067
  • 【软件构造】正则表达式

    1.定义 正则表达式:用来匹配一系列符合某个语法规则的字符串。 2.语法规则 符号 功能描述 示例 . 匹配除换行符以外的所有字符 w.h可以匹配wah,wbh,w#h等 [ ] …

    Java 2023年6月5日
    057
  • oracle结合mybatis批量插入数据

    先上代码: controller: service: dao: mapper: <insert id="insertYdData" parameterTy…

    Java 2023年5月30日
    083
  • 【设计模式】Java设计模式-命令模式

    Java设计模式 – 命令模式 😄生命不息,写作不止🔥 继续踏上学习之路,学之分享笔记👊 总有一天我也能像各位大佬一样🏆 一个有梦有戏的人 @怒放吧德德🌝分享学习心得,…

    Java 2023年6月16日
    066
  • 二叉搜索树和平衡二叉树

    写在前面 前面讲了树的基本概念,这篇文章主要讲常见的树的基本操作,如查找,新增,删除等。其中通过动图的方式使得更加容易理解。 二叉查找树 二叉查找树(BST,Binary Sort…

    Java 2023年6月5日
    066
  • 分享一下 Idea 的 scope 功能

    分享一下 Idea 的 scope 功能 事情的起因是我在使用 idea 的 call hierarchy功能时,觉得它没有像 find usage那样有排除功能,并且如果点击了 …

    Java 2023年6月5日
    069
  • JVM集合之开篇点题

    大家在平时的开发过程中是否遇到过 StackOverflowError、 OutOfMemoryError等类似的内存溢出错误呢?大家又是怎么解决这个问题的?再来,大家在面试过程中…

    Java 2023年6月5日
    084
  • centos安装配置rabbitmq

    (1)安装erlangrpm -ivh erlang-20.3.8.26-1.el7.x86_64.rpm (2)安装socatrpm -ivh socat-1.7.3.2-2.e…

    Java 2023年5月29日
    058
  • Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!

    Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神! Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神! …

    Java 2023年6月7日
    072
  • 设计模式 18 中介者模式

    中介者模式(Mediator Pattern)属于 行为型模式 一提到中介,大家都非常熟悉,生活中最常见的就是房屋中介。 虽然中介要收取一定费用,但却能给房东和租客都提供大量遍历,…

    Java 2023年6月6日
    099
  • Spring 5

    Spring 5框架 一、Spring概念 1、Spring是轻量级的JavaEE框架 2、Spring可以解决企业应用开发的复杂性 3、Spring有两个核心部分:IOC和AOP…

    Java 2023年6月15日
    063
  • 最大和的连续子数组

    1、题目背景 给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和,子数组是数组中的一个连续部分 2、代码实现 public cla…

    Java 2023年6月8日
    065
  • 01-MyBatisPlus简介

    一、简介 官网:http://mp.baomidou.com/参考教程:https://baomidou.com/pages/24112f/MyBatis-Plus(简称 MP)是…

    Java 2023年6月15日
    065
  • JavaWeb_(视频网站)_七、推荐模块1

    package com.Gary.betobe.recommend; import java.util.Set; import org.springframework.beans….

    Java 2023年5月29日
    070
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球