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

      

  • 相关阅读:
    动态、指针field-symbols初探
    简单的OO ALV显示ALV及下载
    python运算符号
    linux ubuntu 学习总结(day01)基本命令学习
    Linux之Ubuntu基本命令提炼,分条列出
    linux常用基本命令
    EMC光纤交换机故障处理和命令分析
    Java求一个数组中的最大值和最小值
    【SSH网上商城项目实战30】项目总结
    【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
  • 原文地址:https://www.cnblogs.com/vincentmax/p/14331653.html
Copyright © 2011-2022 走看看