您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        这篇文章将为大家详细讲解有关如何在MyBatis-Plus逆向工程使用Generator,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
环境搭建
首先创建一张数据库表
DROP TABLE IF EXISTS user; CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (id) );
对应的数据如下
DELETE FROM user; INSERT INTO user (id, name, age, email) VALUES (1, 'Jone', 18, 'test1@baomidou.com'), (2, 'Jack', 20, 'test2@baomidou.com'), (3, 'Tom', 28, 'test3@baomidou.com'), (4, 'Sandy', 21, 'test4@baomidou.com'), (5, 'Billie', 24, 'test5@baomidou.com');
创建一个普通的SpringBoot项目,然后引入依赖,既然要跟数据库打交道,connector肯定不能少
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.18</version> </dependency>
另外要使用mybatis-plus,当然也要引入该starter
<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>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.1</version> </dependency>
为了方便起见,这里引入Lombok
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
然后编写一个类,直接执行即可!
class AutoCode {
  public static void main(String[] args) {
    // 1、全局配置
    GlobalConfig globalConfig = new GlobalConfig();//构建全局配置对象
    String projectPath = System.getProperty("user.dir");// 获取当前用户的目录
    globalConfig
        .setOutputDir(projectPath + "/mybatis-plus-01-start/src/main/java")// 输出文件路径
        .setAuthor("微信搜一搜:贺贺学编程")// 设置作者名字
        .setOpen(false)// 是否打开资源管理器
        .setFileOverride(true)// 是否覆盖原来生成的
        .setIdType(IdType.AUTO)// 主键策略
        .setBaseResultMap(true)// 生成resultMap
        .setBaseColumnList(true)// XML中生成基础列
        .setServiceName("%sService");// 生成的service接口名字首字母是否为I,这样设置就没有I
    // 2、数据源配置
    DataSourceConfig dataSourceConfig = new DataSourceConfig();// 创建数据源配置
    dataSourceConfig
        .setUrl("jdbc:mysql://127.0.0.1:3306/mybatis_plus?userSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC")
        .setDriverName("com.mysql.cj.jdbc.Driver")
        .setUsername("root")
        .setPassword("root")
        .setDbType(DbType.MYSQL);
    // 3、包配置
    PackageConfig packageConfig = new PackageConfig();
    packageConfig
        .setParent("com.hzy")
        .setEntity("entity")
        .setController("controller")
        .setService("service")
        .setMapper("mapper");
    // 4、策略配置
    StrategyConfig strategyConfig = new StrategyConfig();
    strategyConfig
        .setCapitalMode(true)// 开启全局大写命名
        .setInclude("user")// 设置要映射的表
        .setNaming(NamingStrategy.underline_to_camel)// 下划线到驼峰的命名方式
        .setColumnNaming(NamingStrategy.underline_to_camel)// 下划线到驼峰的命名方式
        .setEntityLombokModel(false)// 是否使用lombok
        .setRestControllerStyle(true)// 是否开启rest风格
        .setControllerMappingHyphenStyle(true);// localhost:8080/hello_a_2
    // 5、自定义配置(配置输出xml文件到resources下)
    InjectionConfig cfg = new InjectionConfig() {
      @Override
      public void initMap() {
        // to do nothing
      }
    };
    List<FileOutConfig> focList = new ArrayList<>();
    String templatePath = "/templates/mapper.xml.vm";
    // 自定义配置会被优先输出
    focList.add(new FileOutConfig(templatePath) {
      @Override
      public String outputFile(TableInfo tableInfo) {
        // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
        return projectPath + "/mybatis-plus-01-start/src/main/resources/mapper/"
            + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
      }
    });
    cfg.setFileOutConfigList(focList);
    // 6、整合配置
    AutoGenerator autoGenerator = new AutoGenerator();// 构建代码生自动成器对象
    autoGenerator
        .setGlobalConfig(globalConfig)// 将全局配置放到代码生成器对象中
        .setDataSource(dataSourceConfig)// 将数据源配置放到代码生成器对象中
        .setPackageInfo(packageConfig)// 将包配置放到代码生成器对象中
        .setStrategy(strategyConfig)// 将策略配置放到代码生成器对象中
        .setCfg(cfg)// 将自定义配置放到代码生成器对象中
        .execute();// 执行!
  }
}执行结果如下

代码中的注释比较多,我就不多说了
关于如何在MyBatis-Plus逆向工程使用Generator就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。