spring-boot mybatis-plus代码生成器

spring-boot mybatis-plus代码生成器

由于我的jdk版本是1.7,所以只能使用2.x的版本,如果使用的jdk版本是1.8及以上,请使用3.x的版本

Mybatis-Plus 2.x 官方文档传送门

Mybatis-Plus 3.x 官网文档传送门

导入依赖

我使用的模板引擎是velocity,导入相应的依赖

<!-- 模板引擎 -->
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.0</version>
</dependency>

<!-- MP 核心库 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>2.3.3</version>
</dependency>

核心代码

public static void main(String[] args) {

    // 需要构建一个 代码自动生成器 对象
    AutoGenerator mpg = new AutoGenerator();
    // 配置策略

    // 1.全局配置
    GlobalConfig gc = new GlobalConfig();
    String projectPath = System.getProperty("user.dir"); //获取当前路径,也可制定路径,生成代码后粘贴即可
    gc.setOutputDir(projectPath + "/src/main/java"); // 代码生成路径
    gc.setAuthor("xxx"); // 设置作者
    gc.setOpen(true); // 生成完成后是否打开文件夹,方便粘贴
    gc.setFileOverride(false); // 是否覆盖
    gc.setServiceName("%sService"); // 去service的I前缀
    gc.setIdType(IdType.AUTO); // 主键算法
    // XML 二级缓存 (这个需要注意,测试时发现默认是开启的,如果不关闭而且项目有没有使用二级缓存的话会导致项目报错,将xml里的二级缓存删除即可)
    /**
     * 报错 : org.mybatis.caches.ehcache.LoggingEhcache
     * <!-- 开启二级缓存 -->
     * <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
     * 将xml中这个删除即可
     */
    gc.setEnableCache(false);

    mpg.setGlobalConfig(gc);

    // 2.设置数据源,
    DataSourceConfig dsc = new DataSourceConfig();
    dsc.setUrl("jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=utf-8");
    dsc.setDriverName("com.mysql.jdbc.Driver"); // mysql8使用 com.mysql.cj.jdbc.Driver
    dsc.setUsername("root");
    dsc.setPassword("root");
    dsc.setDbType(DbType.MYSQL); // 数据库类型

    mpg.setDataSource(dsc);

    // 3.包的设置 此项目最终生成的目录 (项目路径/src/main/java/com/test/base/test/)
    PackageConfig pc = new PackageConfig();
    pc.setModuleName("test");
    pc.setParent("com.test.base");
    pc.setEntity("entity");
    pc.setMapper("mapper");
    pc.setService("service");
    pc.setController("controller");

    mpg.setPackageInfo(pc);

    // 策略配置
    StrategyConfig sf = new StrategyConfig();
    // 下划线命名的表名会自动转换为驼峰命名 (test_test1 ---> testTest1)
    sf.setNaming(NamingStrategy.underline_to_camel);  
    // 这个转换的是列名
    sf.setColumnNaming(NamingStrategy.underline_to_camel);
    // 实体类添加lombok注解 (若不清楚请自行百度,需添加相关依赖)
    sf.setEntityLombokModel(true);
    // rest风格
    sf.setRestControllerStyle(true);
    // 需自动生成的表名,若需要添加,直接添加即可("","",""...)
    sf.setInclude("user","test"); 
    // sf.setLogicDeleteFieldName("deleted"); // 逻辑删除
    // 自动填充配置(若需要手动填写时间,注释掉该配置)
    TableFill gmt_create = new TableFill("create_time", FieldFill.INSERT); // 自动填充创建时间
    TableFill gmt_modified = new TableFill("update_time", FieldFill.INSERT_UPDATE); // 自动填充修改时间
    ArrayList<TableFill> tableFills = new ArrayList<>();
    tableFills.add(gmt_create);
    tableFills.add(gmt_modified);
    sf.setTableFillList(tableFills);
    // 乐观锁
    //sf.setVersionFieldName("version");
    sf.setControllerMappingHyphenStyle(true); // localhost:8080/hello_id_2
    mpg.setStrategy(sf);

    mpg.execute(); // 执行

}

最终效果

然后将xml文件放到需要的目录下即可

posted @ 2020-03-30 09:58  xy7053  阅读(303)  评论(0编辑  收藏  举报