Mybatis Generator 最完整配置详解

这是从CSDN找到的一篇翻译文章,尝试重新排版后转载。

1. < generatorConfiguration > 标签

1.1 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用${propertyKey}的方式来引用配置项。有两个属性:
- resource:配置资源加载地址,MBG从classpath开始找,比如com/myproject/generatorConfig.properties
- url:配置资源加载地址,使用URL的方式,比如file:///C:/myfolder/generatorConfig.properties.
注意两个属性只能选址一个;
1.2 如果使用了mybatis-generator-maven-plugin,那么在 pom.xml 中定义的 properties 都可以直接在 generatorConfig.xml 中使用

<properties resource="" url="" />

1.3 在MBG工作的时候,需要额外加载的依赖包,使用 location 属性指明加载 jar/zip 包的全路径。

<classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />

2. < context > 标签

2.1 用于设置生成一组对象的环境。
2.2 标签内可用属性有:

属性 说明
id 必选,上下文id,用于在生成错误时提示
defaultModelType 指定生成对象的样式:
1. conditional:类似hierarchical;
2. flat:所有内容(主键,blob)等全部生成在一个对象中;
3. hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)
targetRuntime 1. MyBatis3:默认值,生成基于 MyBatis 3.x 以上版本的内容,包括XXXBySample;
2. MyBatis3Simple:类似 MyBatis3,只是不生成 XXXBySample;
introspectedColumnImpl 类全限定名,用于扩展MBG

3. < context > 标签下可用属性(properties)

properties name 说明
autoDelimitKeywords 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表; 一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖
javaFileEncoding 生成的Java文件的编码
javaFormatter 格式化java代码
xmlFormatter 格式化XML代码
beginningDelimiter 指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号;
endingDelimiter

4. < jdbcConnection > 标签

必须要有的,使用这个配置链接数据库。标签下可以设置property属性,每一个property属性都设置到配置的Driver上。

5. < context > 标签下的各种生成器

(1) javaTypeResolver(java类型处理器)。
用于处理DB中的类型到Java中的类型。 默认使用 JavaTypeResolverDefaultImpl。
注意:默认会先尝试使用 Integer,Long,Short 等来对应 DECIMAL 和 NUMERIC 数据类型。
其中的 property name=”forceBigDecimals”的取值规则如下:
- 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;

(2) javaModelGenerator(java模型创建器)
必须元素,负责:
① key类(见 context 的 defaultModelType);
② java类;
③ 查询类
targetPackage:生成的类要放的包,真实的包受 enableSubPackages 属性控制;
targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录。
对于 MyBatis3/MyBatis3Simple,自动为每一个生成的类创建一个构造方法,构造方法包含了所有的 field;而不是使用setter;

(从这里往下看着有些晕~~~暂时先整到这里吧,后面的下次)

5. < context > 标签下的< table >标签

源码附后:




<generatorConfiguration>

 

<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >
    
    <property name="autoDelimitKeywords" value="false"/>
    
    <property name="javaFileEncoding" value="UTF-8"/>
    
    <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
    
    <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
    
    <property name="beginningDelimiter" value="`"/>
    <property name="endingDelimiter" value="`"/>
    
    <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql:///pss" userId="root" password="admin">
        
    jdbcConnection>
    
    <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl">
        
        <property name="forceBigDecimals" value="false"/>
    javaTypeResolver>

    
    <javaModelGenerator targetPackage="com._520it.mybatis.domain" targetProject="src/main/java">
        
        <property name="constructorBased" value="false"/>
        
        <property name="enableSubPackages" value="true"/>
        
        <property name="immutable" value="false"/>
        
        <property name="rootClass" value="com._520it.mybatis.domain.BaseDomain"/>
        
        <property name="trimStrings" value="true"/>
    javaModelGenerator>

    
    <sqlMapGenerator targetPackage="com._520it.mybatis.mapper" targetProject="src/main/resources">
        
        <property name="enableSubPackages" value="true"/>
    sqlMapGenerator>

    
    <javaClientGenerator targetPackage="com._520it.mybatis.mapper" type="ANNOTATEDMAPPER" targetProject="src/main/java">
        
        <property name="enableSubPackages" value="true"/>
        
    javaClientGenerator>
    
    <table tableName="userinfo" >
        
        <property name="constructorBased" value="false"/>
        
        <property name="ignoreQualifiersAtRuntime" value="false"/>
        
        <property name="immutable" value="false"/>
        
        <property name="modelOnly" value="false"/>
        
        
        
        
        
        
        <property name="selectAllOrderByClause" value="age desc,username asc"/>
        
        <property name="useActualColumnNames" value="false"/>

        
        

         
         <columnOverride column="username">
             
             <property name="property" value="userName"/>
             
             
             
             
         columnOverride>
         
    table>
context>
generatorConfiguration>

你可能感兴趣的:(Mybatis,Mybatis,Generator,配置)