zoukankan      html  css  js  c++  java
  • SpringBoot 使用 MyBatisPlus-Generator 快速生成model实体类

    概述

    找了一圈,没找到更简单的生成model的工具。
    然后根据官网demo改写了一下,原文是交互式运行,我写成直接运行,然后把配置文件写在了上边,entity名字改成了model。
    其他需要自定义的可以查官网属性 https://mp.baomidou.com/config/generator-config.html ,很简单

    还有,因为生成的数据会有占位符,数据库表和字段最好有注释,否则空白一片很难看,也为了养成好习惯吧!
    还有,注意启动类需加上@MapperScan("com.example.demo.mapper")注解,否则会启动失败!

    写法

    maven pom文件增加依赖

    <!-- mybatis-plus-generator -->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-generator</artifactId>
      <version>3.3.2</version>
    </dependency>
    <!-- freemarker模板 -->
    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
      <version>2.3.30</version>
    </dependency>
    

    新建 util/MyBatisPlusGenerater.java 文件,把以下内容粘进去,头部改成自己配置,然后直接运行main方法,done!

    package com.example.demo.util;
    
    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;
    import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
    
    public class MyBatisPlusGenerater {
        static String packageName = "com.example.demo"; // 当前包名
        static String author = "MyBatisPlusGenerater"; // 作者
        static String sqlUrl = "mysql://localhost/"; // 数据库类型及地址
        static String sqlDb = "database"; // 数据库名
        static String sqlUser = "root";
        static String sqlPassword = "123456";
        static String table = "t_user,t_device"; // 表,用逗号隔开
    
        public static void main(String[] args) {
            // 代码生成器
            AutoGenerator mpg = new AutoGenerator();
    
            // 全局配置
            GlobalConfig gc = new GlobalConfig();
            gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
            gc.setAuthor(author);
            gc.setOpen(false);
            gc.setServiceName("%sService");
            mpg.setGlobalConfig(gc);
    
            // 数据源配置
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setUrl("jdbc:" + sqlUrl + sqlDb + "?useUnicode=true&useSSL=false&characterEncoding=utf8");
            dsc.setDriverName("com.mysql.cj.jdbc.Driver");
            dsc.setUsername(sqlUser);
            dsc.setPassword(sqlPassword);
            mpg.setDataSource(dsc);
    
            // 包配置
            PackageConfig pc = new PackageConfig();
            pc.setParent(packageName);
            pc.setEntity("model");
            mpg.setPackageInfo(pc);
    
            // 配置模板
            TemplateConfig templateConfig = new TemplateConfig();
            templateConfig.setXml(null); // 不生成MapperXML
            mpg.setTemplate(templateConfig);
    
            // 策略配置
            StrategyConfig strategy = new StrategyConfig();
            strategy.setNaming(NamingStrategy.underline_to_camel);
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);
            strategy.setRestControllerStyle(true);
            strategy.setEntityTableFieldAnnotationEnable(true);
    
            strategy.setInclude(table.split(","));
            strategy.setControllerMappingHyphenStyle(true);
            strategy.setTablePrefix("t_"); // 表前缀,如t_user,没有就注释掉此行
            mpg.setStrategy(strategy);
            mpg.setTemplateEngine(new FreemarkerTemplateEngine());
            mpg.execute();
        }
    
    }
    

    最终生成的结构如图

    ➜  demo tree
    ├── controller
    │   ├── DeviceController.java
    │   └── UserController.java
    ├── mapper
    │   ├── DeviceMapper.java
    │   └── UserMapper.java
    ├── model
    │   ├── Device.java
    │   └── User.java
    ├── service
    │   ├── DeviceService.java
    │   ├── UserService.java
    │   └── impl
    │       ├── DeviceServiceImpl.java
    │       └── UserServiceImpl.java
    └── util
        └── MyBatisPlusGenerater.java
    
  • 相关阅读:
    Codeforces 1265A Beautiful String
    1039 Course List for Student (25)
    1038 Recover the Smallest Number (30)
    1037 Magic Coupon (25)
    1024 Palindromic Number (25)
    1051 Pop Sequence (25)
    1019 General Palindromic Number (20)
    1031 Hello World for U (20)
    1012 The Best Rank (25)
    1011 World Cup Betting (20)
  • 原文地址:https://www.cnblogs.com/36bian/p/13182248.html
Copyright © 2011-2022 走看看