代码生成工具???

“代码自动生成”,第一次知道这个词语是从大学的Java web课上,一位外聘老师口中得知。

从他的闲聊中了解到,许多企业公司都会有这么一个自动生成代码的东西,做Java项目的时候会直接生成代码甚至是一个项目,只需要人工改改细节就OK了。当时就比较感兴趣,就问老师哪里有这样的工具下载。

老师也坦(zhi)率(zhang),说他就有但是不给我们,等我们期末考试95分以上的可以找他要。
当时还以为是什么高大上的神秘工具,还努力的学习,结果嘛,不提了。
现在工作后,又想起这个东西,特意去百度了一下。

自动代码生成器根本原理就是根据实现写事先好的模板,再根据你提供的数据库结构,生成一系列的增删改查方法。的确是可以减少程序员的工作量,但是不能包含复杂或者特殊的业务逻辑
1.不同的架构,需要不同的生成器
2.生成器一般需要模板技术,如freeMarker、velocity等
3.生成器也是Java项目,可以自己修改、设计、开发

因为最近在学习SSM,然后了解到MyBatis GeneratorMyBatis-Plus

一.MyBatis Generator

mybaits需要一大堆的配置文件,以及各种mapper和dao和实体的关联,导致使用mybatis还是不够简洁,后来mybatis也发现了这个弊端,开发了mybatis generator工具来自动化生成实体类、mapper配置文件、dao层代码来减轻开发工作量,在后期也是实现了抛弃mapper配置文件基于注解的开发模式.
mybtis提供了一个mybatis generator工具来帮我们自动创建pojo类、mapper文件以及dao类并且会帮我们配置好它们的依赖关系,而我们只需要关系我们的业务逻辑直接使用就行了。

在spring boot + mybatis中如何使用

1.在pom.xml文件中添加一个generator的maven工具

 
     
         
            org.mybatis.generator 
            mybatis-generator-maven-plugin 
            1.3.2 
             
                 
                    Generate MyBatis Artifacts 
                    deploy 
                     
                        generate 
                     
                 
             
             
                 
                src/main/resources/mybatis-generator/generatorConfig.xml 
                true 
                true 
             
             
                 
                    mysql 
                    mysql-connector-java 
                    5.1.34 
                 
                 
                    org.mybatis.generator 
                    mybatis-generator-core 
                    1.3.2 
                 
             
         
         
            org.springframework.boot 
            spring-boot-maven-plugin 
             
                exec 
             
         
     


2.上面指定了mybatis generator工具配置文件的位置,在这个位置创建一个xml文件,并做如下配置:

 
 
         
         
             
             
             
             
             
              
             
             
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                    
                     
                     
                     
                 
                 
                 
                 
                 
                     
                     
                  
                 
                     
                     
                 
                 
                 
                     
                 
                 
                 
                     
                 
                 
                 
                     
                     
                

在MBG中,最主要也最重要的就是XML配置文件,配置详解

3.在同目录下创建mybatisGeneratorinit.properties文件:

//Mybatis Generator configuration
//dao类和实体类的位置 project =src/main/java #mapper文件的位置 resources=src/main/resources
//根据数据库中的表生成对应的pojo类、dao、mapper
jdbc_driver =com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/demo
jdbc_user=root
jdbc_password=root

4.建立数据库表,当数据库表建立好后在pom.xml文件所在的目录执行如下命令:

mvn mybatis-generator:generate

二.MyBatis-Plus

MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

如何使用

1.pom.xml引入相应的jar包(核心的jar)。





  com.alibaba
  druid
  1.1.3





  mysql
  mysql-connector-java
  5.1.38





  com.baomidou
  mybatisplus-spring-boot-starter
  1.0.5



  com.baomidou
  mybatis-plus
  2.1.8



  org.apache.velocity
  velocity-engine-core
  2.0






  org.mybatis.spring.boot
  mybatis-spring-boot-starter
  1.3.1



2写自动生成代码的java类

public class CodeGeneration {
    /**
     * 
     * @Title: main
     * @Description: 生成
     * @param args
     */
    public static void main(String[] args) {
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir("C://code");
        gc.setFileOverride(true);
        gc.setActiveRecord(false);// 不需要ActiveRecord特性的请改为false
        gc.setEnableCache(false);// XML 二级缓存
        gc.setBaseResultMap(true);// XML ResultMap
        gc.setBaseColumnList(false);// XML columList
        gc.setAuthor("Walle");// 作者


        // 自定义文件命名,注意 %s 会自动填充表实体属性!
        gc.setControllerName("%sAction");
        gc.setServiceName("%sService");
        gc.setServiceImplName("%sServiceImpl");
        gc.setMapperName("%sMapper");
        gc.setXmlName("%sMapper");
        mpg.setGlobalConfig(gc);


        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setDbType(DbType.MYSQL);
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("");
        dsc.setUrl("jdbc:mysql://127.0.0.1:3306/itcast");
        mpg.setDataSource(dsc);


        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setTablePrefix(new String[] { "itcast_" });// 此处可以修改为您的表前缀
        strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
        strategy.setInclude(new String[] { "itcast_user" }); // 需要生成的表


        strategy.setSuperServiceClass(null);
        strategy.setSuperServiceImplClass(null);
        strategy.setSuperMapperClass(null);


        mpg.setStrategy(strategy);


        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.zhm");
        pc.setController("action");
        pc.setService("service");
        pc.setServiceImpl("serviceImpl");
        pc.setMapper("mapper");
        pc.setEntity("entity");
        pc.setXml("xml");
        mpg.setPackageInfo(pc);


        // 执行生成
        mpg.execute();

    }
}

其中重要的有
outputDir(生成文件的输出目录)
TablePrefix(表前缀)
Include(需要包含的表名,允许正则表达式(与exclude二选一配置))
parent(父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名)
更多配置参考:官方解析

3.执行main方法,就会生成好dao,entity,service ,serviceimpl和controller.


我得赶快让某个闲置起来智障队友用起来,大量的给我生成项目,明年看能不能找点外快*_*.

你可能感兴趣的:(代码生成工具???)