美文网首页
【MyBatis-Plus(MP)】逆向工程(实例快速上手)

【MyBatis-Plus(MP)】逆向工程(实例快速上手)

作者: 南方者 | 来源:发表于2020-05-18 00:28 被阅读0次

    前提工作:数据库、数据库里有表、连接数据库的依赖、springboot + maven

    【参考资料】: MyBatis-Plus 代码生成器

        首先,先介绍一下AutoGenerator。(下面代码运用到)

        AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

    【实例快速上手】

        【第一步】,先配置三个依赖。

    图 1-1 

    <!-- mysql -->

            <dependency>

                <groupId>mysql</groupId>

                <artifactId>mysql-connector-java</artifactId>

                <scope>runtime</scope>

            </dependency>

    <!-- mysql -->

    <!-- MP -->

            <dependency>

                <groupId>com.baomidou</groupId>

                <artifactId>mybatis-plus-boot-starter</artifactId>

                <version>3.3.1.tmp</version>

            </dependency>

            <dependency>

                <groupId>com.baomidou</groupId>

                <artifactId>mybatis-plus-generator</artifactId>

                <version>3.3.1.tmp</version>

            </dependency>

            <dependency>

                <groupId>org.apache.velocity</groupId>

                <artifactId>velocity-engine-core</artifactId>

                <version>2.2</version>

            </dependency>

            <!-- MP -->

        【第二步】在该项目里创建 代码生成器 类(参考:代码生成器使用教程

    图 2-1 项目结构 图 2-2 代码改写

    package com.anpai.demo.mybatisplus;

    import com.baomidou.mybatisplus.annotation.DbType;

    import com.baomidou.mybatisplus.annotation.IdType;

    import com.baomidou.mybatisplus.generator.AutoGenerator;

    import com.baomidou.mybatisplus.generator.config.*;

    import com.baomidou.mybatisplus.generator.config.rules.DateType;

    import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

    // 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中

    public class CodeGenerator {

        /**

        * <p>

        * 读取控制台内容

        * </p>

        */

      /* public static String scanner(String tip) {

            Scanner scanner = new Scanner(System.in);

            StringBuilder help = new StringBuilder();

            help.append("请输入" + tip + ":");

            System.out.println(help.toString());

            if (scanner.hasNext()) {

                String ipt = scanner.next();

                if (StringUtils.isNotEmpty(ipt)) {

                    return ipt;

                }

            }

            throw new MybatisPlusException("请输入正确的" + tip + "!");

        }*/

        public static void main(String[] args) {

            // 代码生成器

            AutoGenerator mpg = new AutoGenerator();

            // 全局配置

            GlobalConfig gc = new GlobalConfig();

            String projectPath = System.getProperty("user.dir");

            gc.setOutputDir("D:\\University\\Anpai\\anpai\\mybatis-plus" + "/src/main/java");

            gc.setFileOverride(false);

            gc.setServiceName("%sService");

            gc.setIdType(IdType.ID_WORKER_STR);

            gc.setDateType(DateType.ONLY_DATE);

            gc.setSwagger2(true);

            gc.setAuthor("luowenlong");

            gc.setOpen(false);

            // gc.setSwagger2(true); 实体属性 Swagger2 注解

            mpg.setGlobalConfig(gc);

            // 数据源配置

            DataSourceConfig dsc = new DataSourceConfig();

            dsc.setUrl("jdbc:mysql://47.112.247.160:3306/anpaidb?serverTimezone=GMT%2B8");

            // dsc.setSchemaName("public");

            dsc.setDriverName("com.mysql.cj.jdbc.Driver");

            dsc.setUsername("root");

            dsc.setPassword("123456");

            dsc.setDbType(DbType.MYSQL);

            mpg.setDataSource(dsc);

            // 包配置

            PackageConfig pc = new PackageConfig();

            pc.setModuleName("mybatisplus");

            pc.setParent("com.anpai.demo");

            pc.setController("controller");

            pc.setEntity("entity");

            pc.setService("service");

            pc.setMapper("mapper");

            mpg.setPackageInfo(pc);

            // 策略配置

            StrategyConfig strategy = new StrategyConfig();

            // strategy.setInclude("edu_teacher");

            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);

            // 执行

            mpg.execute();

        }

    }

    【第三步】运行,生成文件,逆向工程完成。

    图 3-1  运行 图 3-2  生成文件成功,逆向工程完成

    (注:这只是笔者的自定义模板,在官方的MP里,有自定义模板教程, 而且还有更多更多的功能,参考官方的教程就好了。)



    补充:下图是定义在哪生成文件

    图 0-1 补充

    相关文章

      网友评论

          本文标题:【MyBatis-Plus(MP)】逆向工程(实例快速上手)

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