zoukankan      html  css  js  c++  java
  • AutoGenerator代码生成器

    MP的代码生成器介绍

    问题:

    目前我们在开发SSM项目的时候,会先搭建一个SSM的开发环境。

    我们会根据数据库的表在pojo包中创建对应的实体类,而且可以不

    关心项目功能的同时,在mapper层对数据库的表的基础增删改查功

    能提前实现,同理,在service层可以将基础的业务代码提前声明。

    然后再根据项目功能完成对应的复杂操作。而整个过程需要程序员手动

    完成搭建,效率低下。

    解决:

    创建一个代码生成类,调用该类的对象,并将对应的数据库表作为参数传递进入

    以及一些生成代码的其他要求也传递给该对象,让该对象帮助我们生成基础的开发

    代码。

    实现:

    MP的代码生成器

    作用:

    根据数据库中的表动态的生成表对应的mapper,service,pojo,controller层的基础代码,提升开发效率。

    [2] MP代码生成器的使用

    1.  导入代码生成器相关jar包

    2.  使用代码生成器生成代码 

    package com.bjsxt.test;
    import com.baomidou.mybatisplus.annotation.IdType;
    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;
    
    public class TestCode {
        public static void main(String[] args) {
            // 代码生成器
                 AutoGenerator mpg = new AutoGenerator();
            //全局配置策略
                GlobalConfig gc = new GlobalConfig();
                String path = System.getProperty("user.dir");//动态获取当前项目的路径
                System.out.println(path);
                gc.setFileOverride(false);// 是否覆盖同名文件,默认是false
                gc.setActiveRecord(true);// 不需要ActiveRecord特性的请改为false
                gc.setEnableCache(false);// XML 二级缓存
                gc.setBaseResultMap(true);// XML ResultMap
                gc.setBaseColumnList(false);// XML columList
                gc.setOutputDir(path+"/09-mp-code/src");
                gc.setIdType(IdType.AUTO);//设置主键策略
    
            //数据源配置
                DataSourceConfig dsc = new DataSourceConfig();
                dsc.setUrl("jdbc:mysql://localhost:3306/mp?useUnicode=true&useSSL=false&characterEncoding=utf8");
                // dsc.setSchemaName("public");
                dsc.setDriverName("com.mysql.jdbc.Driver");
                dsc.setUsername("root");
                dsc.setPassword("1234");
    
            // 包配置
                PackageConfig pc = new PackageConfig();
                pc.setParent("com.bjsxt")
                        .setMapper("mapper")
                        .setService("service")
                        .setController("controller")
                        .setEntity("pojo")
                        .setXml("mapper");
            //策略配置
                StrategyConfig stConfig = new StrategyConfig();
                stConfig.setCapitalMode(true) //全局大写命名
                        .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
                        .setTablePrefix("t_")
                        .setInclude("t_student"); // 生成的表,多个表继续传递即可,String类型的可变参数
    
            //将策略配置对象集成到代码生成器中
                mpg.setGlobalConfig(gc);
                mpg.setDataSource(dsc);
                mpg.setPackageInfo(pc);
                mpg.setStrategy(stConfig);
                //执行生成
                mpg.execute();
        }
    }
    

      

  • 相关阅读:
    Java基础
    第11章 处理概括关系
    第10章 简化函数调用
    第9章 简化条件表达式
    第8章 重新组织数据(暂略)
    第7章 在对象之间搬移特性
    第6章 重新组织函数
    【剑指offer】57
    【每日一题-leetcode】45.跳跃游戏 ||
    【左神算法】随机+荷兰国旗优化版快排
  • 原文地址:https://www.cnblogs.com/vincentmax/p/14331653.html
Copyright © 2011-2022 走看看