zoukankan      html  css  js  c++  java
  • mybatis-generator自动生成代码插件详解

    一.mybatis-generator是一款在使用mybatis框架时,自动生成model,dao和mapper的工具,减少了业务开发人员的手动编码时间,提高工作效率主要有以下三个配置文档:


    1.本人使用的是maven构建,首先在pom.xml文件添加mybatis-generator依赖包以及插件,配置如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>cn.enjoy</groupId>
        <artifactId>mybatis1</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <!-- 单元测试相关依赖 -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>4.3.2.RELEASE</version>
                <scope>test</scope>
            </dependency>
            <!-- 日志相关依赖 -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.10</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.1.2</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.1.2</version>
            </dependency>
            <!-- mysql驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.18</version>
            </dependency>        <!-- mybatis相关依赖 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
              <!--  <version>3.5.0-SNAPSHOT</version>-->
                 <version>3.4.1</version>
            </dependency>
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>5.1.4</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.9.5</version>
            </dependency>
    
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper</artifactId>
                <version>4.0.0</version>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.6</version>
                    <dependencies>
                        <dependency>
                            <groupId>mysql</groupId>
                            <artifactId>mysql-connector-java</artifactId>
                            <version>5.1.44</version>
                        </dependency>
                        <dependency>
                            <groupId>tk.mybatis</groupId>
                            <artifactId>mapper</artifactId>
                            <version>4.0.0</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <overwrite>true</overwrite>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    
    

    2.在resources目录下,数据库连接配置文件:jdbc.properties:

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/bysujc?useUnicode=true&characterEncoding=UTF-8
    jdbc.username=root
    jdbc.password=123456
    

    3.在resources目录下generator配置文件:generatorConfig.xml:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
            "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
    <generatorConfiguration>
        <!-- 引入配置文件 -->
        <properties resource="jdbc.properties"/>
    
        <!-- 指定数据库jdbc驱动jar包的位置,引入了maven可忽略 -->
        <!--<classPathEntry location="D:\generator\mysql-connector-java-5.1.44.jar"/>-->
    
        <!-- 一个数据库一个context -->
        <context id="MySQL" targetRuntime="MyBatis3" defaultModelType="flat">
            <!-- 设置使用UTF-8编码格式 -->
            <property name="javaFileEncoding" value="UTF-8"/>
    
            <property name="beginningDelimiter" value="`"/>
            <property name="endingDelimiter" value="`"/>
    
            <!-- plugin -->
            <!--<plugin type="org.mybatis.generator.plugins.CachePlugin"/>-->
            <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
            <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
            <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
                <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
                <!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
                <property name="caseSensitive" value="false"/>
            </plugin>
    
            <!-- 取消生成的代码注释 -->
            <commentGenerator type="org.mybatis.generator.internal.DefaultCommentGenerator">
                <!-- 是否去除自动生成的注释 true:是 : false:否 -->
                <property name="suppressAllComments" value="true"/>
                <!-- true时,注释中不会添加生成时间,ps:似乎没用 -->
                <property name="suppressDate" value="true"/>
                <!-- 此处为 true 时,生成的 Model 包含对应表字段注释 -->
                <property name="addRemarkComments" value="true"/>
            </commentGenerator>
    
            <!-- jdbc连接 -->
            <jdbcConnection driverClass="${jdbc.driver}"
                            connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/>
    
            <!-- 类型转换 -->
            <javaTypeResolver>
                <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
    
            <!-- 01 指定javaBean生成的位置 -->
            <!-- targetPackage:指定生成的model生成所在的包名 -->
            <!-- targetProject:指定在该项目下所在的路径  -->
            <javaModelGenerator targetPackage="com.bysujc.mybatis.entity"
                                targetProject="src/main/java">
                <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
                <property name="enableSubPackages" value="false"/>
                <!-- 是否对model添加构造函数 -->
                <property name="constructorBased" value="true"/>
                <!-- 是否针对string类型的字段在set的时候进行trim调用 -->
                <property name="trimStrings" value="true"/>
                <!-- 建立的Model对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->
                <property name="immutable" value="false"/>
            </javaModelGenerator>
    
            <!-- 02 指定sql映射文件生成的位置 -->
            <sqlMapGenerator targetPackage="mapperxml"
                             targetProject="src/main/resources">
                <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
                <property name="enableSubPackages" value="false"/>
            </sqlMapGenerator>
    
            <!-- 03 生成XxxMapper接口 -->
            <!-- type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象 -->
            <!-- type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象 -->
            <!-- type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口 -->
            <javaClientGenerator targetPackage="com.bysujc.mybatis.mapper"
                                 targetProject="src/main/java" type="XMLMAPPER">
                <!-- 是否在当前路径下新加一层schema,false路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
                <property name="enableSubPackages" value="false"/>
            </javaClientGenerator>
    
            <!-- 配置表信息 -->
            <!-- schema即为数据库名 -->
            <!-- tableName为对应的数据库表,写百分号就是所有的表 -->
            <!-- domainObjectName是要生成的实体类 -->
            <!-- enable*ByExample是否生成 example类 -->
            <!--<table schema="" tableName="t_role" domainObjectName="TRolee"-->
            <table schema="" tableName="%"
                   enableCountByExample="false" enableDeleteByExample="false"
                   enableSelectByExample="false" enableUpdateByExample="false">
                <!-- 忽略列,不生成bean 字段 -->
                <!-- <ignoreColumn column="FRED" /> -->
                <!-- 指定列的java数据类型 -->
                <!-- <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> -->
                <!-- 统一去掉表名前面的T -->
                <!--<domainObjectRenamingRule searchString="^T" replaceString=""/>-->
            </table>
        </context>
    </generatorConfiguration>
    

    二.以上配置文件完毕,以下操作二选一
    1.idea中点击右边mvaen projects:点击mybatis-generator中mybatis-generator:generate
    2.配置mavan:mybatis-generator:generate -e

  • 相关阅读:
    luogu P3959 宝藏
    hdu4035 Maze
    [hdu2899]Strange fuction
    luogu4407 [JSOI2009]电子字典 字符串hash + hash表
    SPOJ6717 Two Paths 树形dp
    luogu4595 [COCI2011-2012#5] POPLOCAVANJE 后缀自动机
    后缀数组
    luoguP1659 [国际集训队]拉拉队排练 manacher算法
    luoguP4555 [国家集训队]最长双回文串 manacher算法
    CF17E Palisection 差分+manacher算法
  • 原文地址:https://www.cnblogs.com/soulmatesjc/p/11427192.html
Copyright © 2011-2022 走看看