精华内容
下载资源
问答
  • MBG

    2019-06-27 22:23:00
    导入相关包 <!--数据库连接--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId>... ...
    1. 导入相关包
    2. <!--数据库连接-->  
    3.     <dependency>  
    4.         <groupId>mysql</groupId>  
    5.         <artifactId>mysql-connector-java</artifactId>  
    6.         <version>5.1.41</version>  
    7.     </dependency>  
    8.     <dependency>  
    9.         <groupId>com.alibaba</groupId>  
    10.         <artifactId>druid</artifactId>  
    11.         <version>1.1.3</version>  
    12.     </dependency>  
    13.     <!--MyBatis-->  
    14.     <dependency>  
    15.         <groupId>org.mybatis.spring.boot</groupId>  
    16.         <artifactId>mybatis-spring-boot-starter</artifactId>  
    17.         <version>1.3.1</version>  
    18.     </dependency>  

    2. 导入插件

    1. <plugin>  
    2.     <groupId>org.mybatis.generator</groupId>  
    3.     <artifactId>mybatis-generator-maven-plugin</artifactId>  
    4.     <version>1.3.5</version>  
    5.     <dependencies>  
    6.         <dependency>  
    7.             <groupId>org.mybatis.generator</groupId>  
    8.             <artifactId>mybatis-generator-core</artifactId>  
    9.             <version>1.3.5</version>  
    10.         </dependency>  
    11.         <dependency>  
    12.             <groupId>mysql</groupId>  
    13.             <artifactId>mysql-connector-java</artifactId>  
    14.             <version>5.1.41</version>  
    15.         </dependency>  
    16.     </dependencies>  
    17.     <executions>  
    18.         <execution>  
    19.             <id>mybatis generator</id>  
    20.             <phase>package</phase>  
    21.             <goals>  
    22.                 <goal>generate</goal>  
    23.             </goals>  
    24.         </execution>  
    25.     </executions>  
    26.     <configuration>  
    27.         <!-- 允许移动生成的文件 -->  
    28.         <verbose>false</verbose>  
    29.         <!-- 允许自动覆盖文件 -->  
    30.         <overwrite>false</overwrite>  
    31.         <configurationFile>  
    32.             src/main/resources/mybatis-generator.xml  
    33.         </configurationFile>  
    34.     </configuration>  
    35. </plugin>  

    3. 创建对应包, 在resources文件下创建mybatis-generator.xml

    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE generatorConfiguration  
    3.         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"  
    4.         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">  
    5.     
    6. <generatorConfiguration>  
    7.     
    8.     <context id="default" targetRuntime="MyBatis3">  
    9.     
    10.         <!-- optional,旨在创建class时,对注释进行控制 -->  
    11.         <commentGenerator>  
    12.             <property name="suppressDate" value="true"/>  
    13.             <property name="suppressAllComments" value="true"/>  
    14.         </commentGenerator>  
    15.     
    16.         <!--jdbc的数据库连接 -->  
    17.         <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
    18.                         connectionURL="jdbc:mysql://127.0.0.1:3306/xunwu"  
    19.                         userId="root"  
    20.                         password="123456">  
    21.         </jdbcConnection>  
    22.     
    23.     
    24.         <!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->  
    25.         <javaTypeResolver>  
    26.             <property name="forceBigDecimals" value="false"/>  
    27.         </javaTypeResolver>  
    28.     
    29.         <!-- 生成DataObject类存放位置 -->  
    30.         <javaModelGenerator targetPackage="com.figsprite.xunwu.dataobject" targetProject="src/main/java">  
    31.             <!-- 是否允许子包,即targetPackage.schemaName.tableName -->  
    32.             <property name="enableSubPackages" value="false"/>  
    33.             <!-- 是否对DO添加 构造函数 -->  
    34.             <property name="constructorBased" value="true"/>  
    35.             <!-- 是否对类CHAR类型的列的数据进行trim操作 -->  
    36.             <property name="trimStrings" value="true"/>  
    37.             <!-- 建立的DO对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->  
    38.             <property name="immutable" value="false"/>  
    39.         </javaModelGenerator>  
    40.         <!-- 生成映射文件存放位置 -->  
    41.         <sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">  
    42.             <property name="enableSubPackages" value="false"/>  
    43.         </sqlMapGenerator>  
    44.     
    45.         <!-- 生成Dao类存放位置 -->  
    46.         <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件的代码  
    47.               type="ANNOTATIONDMAPPER",生成Java Model和基于注解的Mapper 对象  
    48.               type="MIXEDMAPPER",生成基于注解的Java Model和相应的Mapper对象  
    49.               type="XMLMAPPER",生成SQLMap XML 文件和独立的Mapper接口-->  
    50.         <javaClientGenerator type="XMLMAPPER" targetPackage="com.figsprite.xunwu.dao" targetProject="src/main/java">  
    51.             <property name="enableSubPackages" value="true"/>  
    52.         </javaClientGenerator>  
    53.     
    54.     
    55.         <table tableName="house" domainObjectName="House" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
    56.         <table tableName="house_detail" domainObjectName="HouseDetail" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
    57.         <table tableName="house_picture" domainObjectName="HousePicture" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
    58.         <table tableName="house_subscribe" domainObjectName="HouseSubscribe" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
    59.         <table tableName="house_tag" domainObjectName="HouseTag" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
    60.         <table tableName="role" domainObjectName="Role" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
    61.         <table tableName="subway" domainObjectName="Subway" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
    62.         <table tableName="subway_station" domainObjectName="SubwayStation" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
    63.         <table tableName="support_address" domainObjectName="SupportAddress" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
    64.         <table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>  
    65.     
    66.     </context>  
    67. </generatorConfiguration>  

    4. 加上生成命令

        RunàEditConfigurationà+àMaven

        输入Command line

        mybatis-generator:generate

    5. Run

     

    转载于:https://www.cnblogs.com/figsprite/p/11100012.html

    展开全文
  • MBG插件

    2020-06-06 16:54:35
    MBG插件ylake-mybatis-generator ylake-mybatis-generator maven的入口类 MyBatisGeneratorMojo SimpleXMLMapperGenerator 生成逻辑的主入口

    ylake-mybatis-generator

    在这里插入图片描述

    各方法对应的操作类

    batchUpdate BatchUpdateElementGentrator
    batchInsert NBatchInsertElementGenerator
    deleteByPk DeleteElementByShardGenerator
    delete DeleteElementByConditionGenerator
    updateByPk UpdateElementByShardGenerator
    update UpdateElementByShardGenerator
    selectByPk DbFetchOneElementGenerator
    selectByPkForUpdate DbFetchOne4UpdateElementGenerator

    入口类

    maven的入口类

    MyBatisGeneratorMojo.java

    XML生成逻辑主入口类

    SimpleXMLMapperGenerator.java类

    JAVA类生成逻辑主入口类

    SimpleModelGenerator.java
    getCompilationUnits() //类的主要逻辑
    getJavaBeansGetter //get方法的主要生成
    getJavaBeansSetter //set方法的主要生成

    生成的数字类型转换

    JavaTypeResolverDefaultImpl.java类的calculateBigDecimalReplacement方法
    在这里插入图片描述

    列是否为自动生成列判断

    批量插入的生成关于 自动递在这里插入图片描述增的处理
    "列"的处理 BatchInsertColumnsElementGenerator.java

    value的处理 ValuesElementForBatchGenerator.java

    在这里插入图片描述

    关于version版本号的处理

    AssignmentsElementGenerator.java类 这个是update set 当中的处理
    在这里插入图片描述

    updateByPk

    updateByPk的生成类为UpdateElementByShardGenerator.java
    assignments的语句的生成类为
    AssignmentsEle
    在这里插入图片描述

    deleteByPk

    主要的生成类为 DeleteElementByShardGenerator.java
    在这里插入图片描述

    selectByPk

    在这里插入图片描述

    insert

    其中 sql id=“columns” 的入口类为ColumnsElementGenerator.java
    在这里插入图片描述

    selectList

    在这里插入图片描述
    conditions对应的生成类为ConditionsElementGenerator.java

    插件

        <context id="mysqlTable" targetRuntime="MyBatis3Simple">
            <!---序列化-->
            <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
            <!---生成toString方法-->
            <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
    

    在这里插入图片描述

    使用插件的问题

    生成表时报空指针(pgAdmin删了重建)

    在这里插入图片描述

    int4 int8类型的接收(pgAdmin)

    对于PG而言 使用pgAdmin原生的建表工具是无法 建立int4 int8的
    pgAdmin只有 integer 或者 bigInteger 可供选择 即
    在这里插入图片描述
    postgresql的数据类型对批
    在这里插入图片描述
    如果你一定想使用 int4 或 int8类型的话只能这样
    在这里插入图片描述

    pg对表名及字段大小写敏感

    postgresql对表名及字段大小写敏感 建议在建表语句中的 表名 及 字段名 尽量别用"“双引号 括起来
    如果用”“双引号括起来了 在SQL中的只能将表名或字段名也得用”“括起来后 postgresql才能识别 即
    select ID,name from Ta 这种语句在pg的驱动执行后实际翻译为
    select id,name from ta 后会报一个不存在ta表 而库里真实的表为"Ta”
    因此语句 只能写成 select “ID”,name from “Ta” 才能过

    造成了不必要的麻烦 ,所以 直接规范一下在建表时 统一都用小写

    关于pg大小写敏感的对执行语句及shardingsphere的影响测试如下
    测试链接地址
    因此在使用MBG时,要在pg创建表时用小写,同是在MBG中生在表也为小写即如下图
    在这里插入图片描述
    这种在MBG实际生成时会将Mycup 给识别成mycup 如果你的库里的表为"Mycup" 那么此时无法生成文件 他会找不到即报下面警告
    在这里插入图片描述

    展开全文
  • MBG使用

    2019-05-10 16:39:08
    MBG在idea中的使用 首先在maven项目中添加MBG插件 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> ...

    MBG在idea中的使用

    首先在maven项目中添加MBG插件

    		<plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
    

    之后引入generatorConfig.xml文件,以下是在mmall项目中用到的配置文件
    在这里插入图片描述

    <?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="db.properties" />
        <classPathEntry location="F:\Maven\localRepository\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar" />
    
        <context id="DB2Tables" targetRuntime="MyBatis3">
            <jdbcConnection driverClass="${jdbc.driverClassName}"
                            connectionURL="${jdbc.url}"
                            userId="${jdbc.username}"
                            password="${jdbc.password}">
            </jdbcConnection>
    
            <javaTypeResolver >
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
    
            <javaModelGenerator targetPackage="com.mmall.pojo" targetProject="./src/main/java">
                <property name="enableSubPackages" value="true" />
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
    
            <sqlMapGenerator targetPackage="mapper"  targetProject="./src/main/resources">
                <property name="enableSubPackages" value="true" />
            </sqlMapGenerator>
    
            <javaClientGenerator type="XMLMAPPER" targetPackage="com.mmall.dao"  targetProject="./src/main/java">
                <property name="enableSubPackages" value="true" />
            </javaClientGenerator>
    
            <table schema="DB2ADMIN" tableName="mmall_cart" domainObjectName="Cart" ><property name="useActualColumnNames" value="true"/><generatedKey column="ID" sqlStatement="DB2" identity="true" /><columnOverride column="DATE_FIELD" property="startDate" /><ignoreColumn column="FRED" /><columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /></table>
            <table schema="DB2ADMIN" tableName="mmall_category" domainObjectName="Category" ><property name="useActualColumnNames" value="true"/><generatedKey column="ID" sqlStatement="DB2" identity="true" /><columnOverride column="DATE_FIELD" property="startDate" /><ignoreColumn column="FRED" /><columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /></table>
            <table schema="DB2ADMIN" tableName="mmall_order" domainObjectName="Order" ><property name="useActualColumnNames" value="true"/><generatedKey column="ID" sqlStatement="DB2" identity="true" /><columnOverride column="DATE_FIELD" property="startDate" /><ignoreColumn column="FRED" /><columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /></table>
            <table schema="DB2ADMIN" tableName="mmall_order_item" domainObjectName="Orderitem" ><property name="useActualColumnNames" value="true"/><generatedKey column="ID" sqlStatement="DB2" identity="true" /><columnOverride column="DATE_FIELD" property="startDate" /><ignoreColumn column="FRED" /><columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /></table>
            <table schema="DB2ADMIN" tableName="mmall_pay_info" domainObjectName="Payinfo" ><property name="useActualColumnNames" value="true"/><generatedKey column="ID" sqlStatement="DB2" identity="true" /><columnOverride column="DATE_FIELD" property="startDate" /><ignoreColumn column="FRED" /><columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /></table>
            <table schema="DB2ADMIN" tableName="mmall_product" domainObjectName="Product" ><property name="useActualColumnNames" value="true"/><generatedKey column="ID" sqlStatement="DB2" identity="true" /><ignoreColumn column="FRED" /><columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /></table>
            <table schema="DB2ADMIN" tableName="mmall_shipping" domainObjectName="Shipping" ><property name="useActualColumnNames" value="true"/><generatedKey column="ID" sqlStatement="DB2" identity="true" /><columnOverride column="DATE_FIELD" property="startDate" /><ignoreColumn column="FRED" /><columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
                <columnOverride column="detail" property="VARCHAR" />
                <columnOverride column="sub_images" property="VARCHAR" />
            </table>
            <table schema="DB2ADMIN" tableName="mmall_user" domainObjectName="User" ><property name="useActualColumnNames" value="true"/><generatedKey column="ID" sqlStatement="DB2" identity="true" /><columnOverride column="DATE_FIELD" property="startDate" /><ignoreColumn column="FRED" /><columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /></table>
        </context>
    </generatorConfiguration>
    

    |
    |
    |
    |
    |

    以下是详细说明:

    <?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>
    <!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用${propertyKey}的方式来引用配置项
        resource:配置资源加载地址,使用resource,MBG从classpath开始找,比如com/myproject/generatorConfig.properties        
        url:配置资源加载地质,使用URL的方式,比如file:///C:/myfolder/generatorConfig.properties.
        注意,两个属性只能选址一个;
    
        另外,如果使用了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties都可以直接在generatorConfig.xml中使用
    <properties resource="" url="" />
     -->
    
     <!-- 在MBG工作的时候,需要额外加载的依赖包
         location属性指明加载jar/zip包的全路径
    <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />
      -->
    
    <!-- 
        context:生成一组对象的环境 
        id:必选,上下文id,用于在生成错误时提示
        defaultModelType:指定生成对象的样式
            1,conditional:类似hierarchical;
            2,flat:所有内容(主键,blob)等全部生成在一个对象中;
            3,hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)
        targetRuntime:
            1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;
            2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;
        introspectedColumnImpl:类全限定名,用于扩展MBG
    -->
    <context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >
    
        <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;
            一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖
         -->
        <property name="autoDelimitKeywords" value="false"/>
        <!-- 生成的Java文件的编码 -->
        <property name="javaFileEncoding" value="UTF-8"/>
        <!-- 格式化java代码 -->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
        <!-- 格式化XML代码 -->
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
    
        <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
    
        <!-- 必须要有的,使用这个配置链接数据库
            @TODO:是否可以扩展
         -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///pss" userId="root" password="admin">
            <!-- 这里面可以设置property属性,每一个property属性都设置到配置的Driver上 -->
        </jdbcConnection>
    
        <!-- java类型处理器 
            用于处理DB中的类型到Java中的类型,默认使用JavaTypeResolverDefaultImpl;
            注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和 NUMERIC数据类型; 
        -->
        <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
            <!-- 
                true:使用BigDecimal对应DECIMAL和 NUMERIC数据类型
                false:默认,
                    scale>0;length>18:使用BigDecimal;
                    scale=0;length[10,18]:使用Long;
                    scale=0;length[5,9]:使用Integer;
                    scale=0;length<5:使用Short;
             -->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
    
    
        <!-- java模型创建器,是必须要的元素
            负责:1,key类(见context的defaultModelType);2,java类;3,查询类
            targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制;
            targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录
         -->
        <javaModelGenerator targetPackage="com._520it.mybatis.domain" targetProject="src/main/java">
            <!--  for MyBatis3/MyBatis3Simple
                自动为每一个生成的类创建一个构造方法,构造方法包含了所有的field;而不是使用setter;
             -->
            <property name="constructorBased" value="false"/>
    
            <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
            <property name="enableSubPackages" value="true"/>
    
            <!-- for MyBatis3 / MyBatis3Simple
                是否创建一个不可变的类,如果为true,
                那么MBG会创建一个没有setter方法的类,取而代之的是类似constructorBased的类
             -->
            <property name="immutable" value="false"/>
    
            <!-- 设置一个根对象,
                如果设置了这个根对象,那么生成的keyClass或者recordClass会继承这个类;在Table的rootClass属性中可以覆盖该选项
                注意:如果在key class或者record class中有root class相同的属性,MBG就不会重新生成这些属性了,包括:
                    1,属性名相同,类型相同,有相同的getter/setter方法;
             -->
            <property name="rootClass" value="com._520it.mybatis.domain.BaseDomain"/>
    
            <!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
    
    
        <!-- 生成SQL map的XML文件生成器,
            注意,在Mybatis3之后,我们可以使用mapper.xml文件+Mapper接口(或者不用mapper接口),
                或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置
            targetPackage/targetProject:同javaModelGenerator
         -->
        <sqlMapGenerator targetPackage="com._520it.mybatis.mapper" targetProject="src/main/resources">
            <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
    
    
        <!-- 对于mybatis来说,即生成Mapper接口,注意,如果没有配置该元素,那么默认不会生成Mapper接口 
            targetPackage/targetProject:同javaModelGenerator
            type:选择怎么生成mapper接口(在MyBatis3/MyBatis3Simple下):
                1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;
                2,MIXEDMAPPER:使用混合配置,会生成Mapper接口,并适当添加合适的Annotation,但是XML会生成在XML中;
                3,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;
            注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER
        -->
        <javaClientGenerator targetPackage="com._520it.mybatis.mapper" type="ANNOTATEDMAPPER" targetProject="src/main/java">
            <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
            <property name="enableSubPackages" value="true"/>
    
            <!-- 可以为所有生成的接口添加一个父接口,但是MBG只负责生成,不负责检查
            <property name="rootInterface" value=""/>
             -->
        </javaClientGenerator>
    
        <!-- 选择一个table来生成相关文件,可以有一个或多个table,必须要有table元素
            选择的table会生成一下文件:
            1,SQL map文件
            2,生成一个主键类;
            3,除了BLOB和主键的其他字段的类;
            4,包含BLOB的类;
            5,一个用户生成动态查询的条件类(selectByExample, deleteByExample),可选;
            6,Mapper接口(可选)
    
            tableName(必要):要生成对象的表名;
            注意:大小写敏感问题。正常情况下,MBG会自动的去识别数据库标识符的大小写敏感度,在一般情况下,MBG会
                根据设置的schema,catalog或tablename去查询数据表,按照下面的流程:
                1,如果schema,catalog或tablename中有空格,那么设置的是什么格式,就精确的使用指定的大小写格式去查询;
                2,否则,如果数据库的标识符使用大写的,那么MBG自动把表名变成大写再查找;
                3,否则,如果数据库的标识符使用小写的,那么MBG自动把表名变成小写再查找;
                4,否则,使用指定的大小写格式查询;
            另外的,如果在创建表的时候,使用的""把数据库对象规定大小写,就算数据库标识符是使用的大写,在这种情况下也会使用给定的大小写来创建表名;
            这个时候,请设置delimitIdentifiers="true"即可保留大小写格式;
    
            可选:
            1,schema:数据库的schema;
            2,catalog:数据库的catalog;
            3,alias:为数据表设置的别名,如果设置了alias,那么生成的所有的SELECT SQL语句中,列名会变成:alias_actualColumnName
            4,domainObjectName:生成的domain类的名字,如果不设置,直接使用表名作为domain类的名字;可以设置为somepck.domainName,那么会自动把domainName类再放到somepck包里面;
            5,enableInsert(默认true):指定是否生成insert语句;
            6,enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);
            7,enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;
            8,enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);
            9,enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);
            10,enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;
            11,enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);
            12,enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);
            13,modelType:参考context元素的defaultModelType,相当于覆盖;
            14,delimitIdentifiers:参考tableName的解释,注意,默认的delimitIdentifiers是双引号,如果类似MYSQL这样的数据库,使用的是`(反引号,那么还需要设置context的beginningDelimiter和endingDelimiter属性)
            15,delimitAllColumns:设置是否所有生成的SQL中的列名都使用标识符引起来。默认为false,delimitIdentifiers参考context的属性
    
            注意,table里面很多参数都是对javaModelGenerator,context等元素的默认属性的一个复写;
         -->
        <table tableName="userinfo" >
    
            <!-- 参考 javaModelGenerator 的 constructorBased属性-->
            <property name="constructorBased" value="false"/>
    
            <!-- 默认为false,如果设置为true,在生成的SQL中,table名字不会加上catalog或schema; -->
            <property name="ignoreQualifiersAtRuntime" value="false"/>
    
            <!-- 参考 javaModelGenerator 的 immutable 属性 -->
            <property name="immutable" value="false"/>
    
            <!-- 指定是否只生成domain类,如果设置为true,只生成domain类,如果还配置了sqlMapGenerator,那么在mapper XML文件中,只生成resultMap元素 -->
            <property name="modelOnly" value="false"/>
    
            <!-- 参考 javaModelGenerator 的 rootClass 属性 
            <property name="rootClass" value=""/>
             -->
    
            <!-- 参考javaClientGenerator 的  rootInterface 属性
            <property name="rootInterface" value=""/>
            -->
    
            <!-- 如果设置了runtimeCatalog,那么在生成的SQL中,使用该指定的catalog,而不是table元素上的catalog 
            <property name="runtimeCatalog" value=""/>
            -->
    
            <!-- 如果设置了runtimeSchema,那么在生成的SQL中,使用该指定的schema,而不是table元素上的schema 
            <property name="runtimeSchema" value=""/>
            -->
    
            <!-- 如果设置了runtimeTableName,那么在生成的SQL中,使用该指定的tablename,而不是table元素上的tablename 
            <property name="runtimeTableName" value=""/>
            -->
    
            <!-- 注意,该属性只针对MyBatis3Simple有用;
                如果选择的runtime是MyBatis3Simple,那么会生成一个SelectAll方法,如果指定了selectAllOrderByClause,那么会在该SQL中添加指定的这个order条件;
             -->
            <property name="selectAllOrderByClause" value="age desc,username asc"/>
    
            <!-- 如果设置为true,生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法,比如BORN_DATE,生成的属性名字就是BORN_DATE,而不会是bornDate -->
            <property name="useActualColumnNames" value="false"/>
    
    
            <!-- generatedKey用于生成生成主键的方法,
                如果设置了该元素,MBG会在生成的<insert>元素中生成一条正确的<selectKey>元素,该元素可选
                column:主键的列名;
                sqlStatement:要生成的selectKey语句,有以下可选项:
                    Cloudscape:相当于selectKey的SQL为: VALUES IDENTITY_VAL_LOCAL()
                    DB2       :相当于selectKey的SQL为: VALUES IDENTITY_VAL_LOCAL()
                    DB2_MF    :相当于selectKey的SQL为:SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1
                    Derby      :相当于selectKey的SQL为:VALUES IDENTITY_VAL_LOCAL()
                    HSQLDB      :相当于selectKey的SQL为:CALL IDENTITY()
                    Informix  :相当于selectKey的SQL为:select dbinfo('sqlca.sqlerrd1') from systables where tabid=1
                    MySql      :相当于selectKey的SQL为:SELECT LAST_INSERT_ID()
                    SqlServer :相当于selectKey的SQL为:SELECT SCOPE_IDENTITY()
                    SYBASE      :相当于selectKey的SQL为:SELECT @@IDENTITY
                    JDBC      :相当于在生成的insert元素上添加useGeneratedKeys="true"和keyProperty属性
            <generatedKey column="" sqlStatement=""/>
             -->
    
            <!-- 
                该元素会在根据表中列名计算对象属性名之前先重命名列名,非常适合用于表中的列都有公用的前缀字符串的时候,
                比如列名为:CUST_ID,CUST_NAME,CUST_EMAIL,CUST_ADDRESS等;
                那么就可以设置searchString为"^CUST_",并使用空白替换,那么生成的Customer对象中的属性名称就不是
                custId,custName等,而是先被替换为ID,NAME,EMAIL,然后变成属性:id,name,email;
    
                注意,MBG是使用java.util.regex.Matcher.replaceAll来替换searchString和replaceString的,
                如果使用了columnOverride元素,该属性无效;
    
            <columnRenamingRule searchString="" replaceString=""/>
             -->
    
    
             <!-- 用来修改表中某个列的属性,MBG会使用修改后的列来生成domain的属性;
                 column:要重新设置的列名;
                 注意,一个table元素中可以有多个columnOverride元素哈~
              -->
             <columnOverride column="username">
                 <!-- 使用property属性来指定列要生成的属性名称 -->
                 <property name="property" value="userName"/>
    
                 <!-- javaType用于指定生成的domain的属性类型,使用类型的全限定名
                 <property name="javaType" value=""/>
                  -->
    
                 <!-- jdbcType用于指定该列的JDBC类型 
                 <property name="jdbcType" value=""/>
                  -->
    
                 <!-- typeHandler 用于指定该列使用到的TypeHandler,如果要指定,配置类型处理器的全限定名
                     注意,mybatis中,不会生成到mybatis-config.xml中的typeHandler
                     只会生成类似:where id = #{id,jdbcType=BIGINT,typeHandler=com._520it.mybatis.MyTypeHandler}的参数描述
                 <property name="jdbcType" value=""/>
                 -->
    
                 <!-- 参考table元素的delimitAllColumns配置,默认为false
                 <property name="delimitedColumnName" value=""/>
                  -->
             </columnOverride>
    
             <!-- ignoreColumn设置一个MGB忽略的列,如果设置了改列,那么在生成的domain中,生成的SQL中,都不会有该列出现 
                 column:指定要忽略的列的名字;
                 delimitedColumnName:参考table元素的delimitAllColumns配置,默认为false
    
                 注意,一个table元素中可以有多个ignoreColumn元素
             <ignoreColumn column="deptId" delimitedColumnName=""/>
             -->
        </table>
    
    </context>
    
    </generatorConfiguration>
    

    以上配置文件作者:小码哥Java学院
    链接:http://www.jianshu.com/p/e09d2370b796
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    然后点击maven插件,生成即可在这里插入图片描述

    展开全文
  • SSM笔记-MBG

    2018-10-13 22:52:11
    SSM笔记-MBG,1、创建对应的包 2、创建mbg配置文件 3、main方法运行mbg配置文件并刷新项目目录
  • mbg逆向工程.rar

    2020-08-07 15:01:50
    mbg逆向工程.rar
  • mbg-ext-源码

    2021-02-12 19:55:20
    基于 (MBG)的代码生成工具 # 参数选项 java -jar mbg-ext.jar -h usage: mgb-ext -c,--configfile <arg> xml configuration file, <mbg> -d,--dir <arg> current working directory, <.> -e,--example <arg>...
  • MBG的使用

    千次阅读 2019-07-03 14:03:42
    MBG 1 什么是MBG? MBG是Mybatis generator英文的缩写,是根据数据库中的表,反向生成实体类,DAO,Mapper文件的插件 2 MBG的使用 开发工具:IDEA 项目:Maven (一) 引入项目的相关依赖 (二)配置generetor.xml的相关信息 ...

    MBG

    1 什么是MBG?
    MBG是Mybatis generator英文的缩写,是根据数据库中的表,反向生成实体类,DAO,Mapper文件的插件
    
    2 MBG的使用

    开发工具:IDEA
    项目:Maven
    (一) 引入项目的相关依赖
    在这里插入图片描述
    (二)配置generetor.xml的相关信息
    在这里插入图片描述
    (三)配置applicationContext.xml与平时开发没有任何区别
    (四)运行插件,按照下面的不走执行,第五步双击执行插件即可
    在这里插入图片描述
    运行效果

    自动生成实体类,DAO,Mapper

    展开全文
  •    MyBatis Generator(MBG)是MyBatis和iBATIS的代码生成器(逆向生成)。它将自动将查询数据库表,并将生成可用于访问表的构件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG虽然减少了对于数据库...
  • <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" ...generatorConfiguration>...-- context元素用于指定...
  • MBG配置详解

    2020-11-09 14:47:55
    MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://mbg.cndocs.ml/ 该中文文档由于尽可能和原文内容一致,...注:本文后面提到的MBG全部指代MyBatis Generator。 MyBatis Generator 1.3.4 扩...
  • Mybatis Generator(MBG),下面我们统称为MBG,是一个Mybatis和iBatis的代码生成器。他可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象。这样减少了项目新建时各种配置对象,配置文件和...
  • MBG配置讲解

    2020-02-14 11:31:56
    http://youbiji.cn/doc/mybatis/mbg-xml.html
  • Baizhi MBG WuMing

    2020-06-23 00:20:18
    1.MBG Mybatis Generator(mybatis的插件) 根据数据库的表,反向生成实体类,dao,mapper 1.引入依赖 junit junit 4.12 test org.springframework ...
  • MBG逆向工程

    2020-09-04 09:48:57
    mybatis generator - 逆向工程 pom.xml <?xml version="1.0" encoding="UTF-8"?...winton-MBG</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project
  • MBG代码生成

    2017-12-08 20:16:37
    1.使用maven生成代码 http://www.mybatis.org/generator/configreference/xmlconfig.html pom.xml文件 4.0.0 MBG MBG 0.0.1-SNAPSHOT war UTF-8 junit junit
  • myo-mbg-git-merges-源码

    2021-03-19 01:57:50
    myo-mbg-git-merges
  • Mybatis generator mybatis 自动生成代码工具介绍 mybatis使用起来轻便,可编写Sql。...MBG生成的代码是可以和mybatis发行的版本兼容的。 targetRuntime 生成代码的目标 MyBatis3DynamicSql 要求MyBatis
  • Add recipe for MBG

    2020-12-30 06:50:16
    <div><p>Add recipe for <a href="https://github.com/maickrau/MBG">MBG</a>. The recipe uses a tarball generated by <a href="https://github.com/Kentzo/git-archive-all">git-archive-all</a> instead of the ...
  • Update MBG to 1.0.1

    2020-12-30 06:48:54
    <div><p>Updates MBG to version 1.0.1 <p>Please read the <a href="https://bioconda.github.io/contributor/guidelines.html">guidelines for Bioconda recipes</a> before opening a pull request (PR). <ul>...
  • MyBatis Generator(MBG

    2020-09-03 09:47:24
    1 什么是MyBatis Generator(MBG) 2 搭建MBG项目 4 使用自动生成的文件操作数据库 1 什么是MyBatis Generator(MBG) 简单来说,MyBatis Generator是一个Mybatis和ibatis的代码生成器,它可以根据数据库表自动生成...
  • 本篇文章对C# MBG 扩展方法类库进行了详细的分析介绍,需要的朋友参考下
  • MaBatis 逆序工程MBG文档MBG使用第一步:编写MBG的配置文件第二步:运行代码生成器生成代码 MBG就是根据表自动生成对应的映射文件,接口以及bean类。 文档 官方文档地址:http://www.mybatis.org/generator/ 官方...
  • Mybatis,Mybatis generator MBG,lombok mybatis java合并,xml合并,model合并,Mapper合并。
  • 这个gradle插件是mybatis生成插件. 这个插件拥有了mybatisGeneratorPlugin(mbg)的全部功能,这个插件实现在gradle3.3上使用groovy实现
  • 通用Mapper和MBG

    2019-03-01 11:45:26
    通用Mapper和MBG差别 MBG:生成实体类、Dao接口、Mapper文件 通用Mapper:书写总体类、使用预设的Dao接口Mapper文件 SpringBoot集成通用Mapper 1、导入环境 &lt;!-- 通用Mapper与Springboot集成需要的依赖 ...
  • mybatis逆向工程mbg

    2020-09-07 10:04:30
    mbg:mybatis generator=mybatis代码生成器 1.看一下项目结构 其中bean文件,mapper接口文件和mapper.xml文件是代码生成器自动生成的。 使用generator生成器的方法,百度mybatis,进入git仓库,点mybatis,找到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,556
精华内容 622
关键字:

mbg