美文网首页
MyBatis-Plus代码生成器

MyBatis-Plus代码生成器

作者: 文景大大 | 来源:发表于2021-06-24 18:02 被阅读0次

现在主流的工程结构里面,接口层都是放在controller包,业务层都是放在service包,实体类都是放在entity包,dao和mapper xml都是放在mapper包下面的。每次初始化工程的时候都需要手动来一遍,确实会有繁琐,所以才有了我们的自动化代码生成器,帮助我们生成如上描述的项目结构。

首先需要在pom中引入必要的依赖:

<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-generator -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity-engine-core -->
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.3</version>
</dependency>

然后在合适的地方写一个main方法类即可,该方法只是后台手动启动的。

public class MyBatisPlusGenerator {

    public static void main(String[] args) {
        // 1、创建代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 2、全局配置
        GlobalConfig gc = new GlobalConfig();
        // 获取工程所在的绝对路径(不包含子工程的路径)
        String projectPath = System.getProperty("user.dir");
        // 设置生成文件想要输出的绝对路径
        gc.setOutputDir(projectPath + "/src/main/java");
        // 创建文件类注释中的作者
        gc.setAuthor("zhangxun");
        // 是否打开输出目录
        gc.setOpen(false);

        // 3、数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://x.x.x.x:3306/zhangxun?characterEncoding=utf-8&&serverTimezone=Asia/Shanghai&&useSSL=false");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");

        // 4、包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName(null);
        // 设置输出目录下面的包结构,文件会放在/src/main/java/com.xun.mybatis-plus下面
        pc.setParent("com.xun.mybatis-plus");
        // 设置各种包名
        pc.setController("controller");
        pc.setEntity("entity");
        pc.setService("service");
        pc.setMapper("mapper");

        // 5、策略配置
        StrategyConfig strategy = new StrategyConfig();
        // 需要对哪些表进行自动代码生成,变长参数,可以设置多个
        strategy.setInclude("zx_user");
        strategy.setNaming(NamingStrategy.underline_to_camel);
        // 标记表前缀,在生成代码时可以不把表前缀放到文件名上
        strategy.setTablePrefix("zx_");
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        // 实体类是否为lombok类型
        strategy.setEntityLombokModel(true);
        // Controller是否为Rest的
        strategy.setRestControllerStyle(true);
        strategy.setControllerMappingHyphenStyle(true);

        mpg.setGlobalConfig(gc);
        mpg.setDataSource(dsc);
        mpg.setPackageInfo(pc);
        mpg.setStrategy(strategy);

        // 6、执行
        mpg.execute();
    }

}

执行该main方法,就能看到和表zx_user相对应的代码都自动生成了,确实很方便。

关于全局配置、数据源配置、包配置、策略配置和自定义配置有很多配置项可以参考官网,或者阅读源码中的逻辑和注释也能明白。

个人感觉只有在初始化项目时,表关系已经理清楚,确定表的数量很多的时候,使用代码生成器才是划算的,可以省去大量的手动创建工作。但是学习代码生成器的使用和各种配置也是需要一定的时间的,说不定有这个时间早就已经手动创建好了。

相关文章

网友评论

      本文标题:MyBatis-Plus代码生成器

      本文链接:https://www.haomeiwen.com/subject/vvdbyltx.html