`

mybatis generator

 
阅读更多
1. 在 Mybatis 主页 http://code.google.com/p/mybatis/ 上下载 Mybatis mybatis-generator-core [ mybatis-generator-core-1.3.2-bundle.zip]。当然运行 mybatis-generator 生成的代码还需要下载 mybatis 的 jar 包[本例使用的是 3.0.2 版本],和相关数据库的 jdbc [本文中使用的是MySql的jdbc] 。
 
2.要运行 generator ,需要给 generator 提供一个配置文件,指定其生成的数据库的相关信息
 
 以oracle数据库为例子的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>
    <!-- classPathEntry:数据库的JDBC驱动的jar包地址 -->
    <classPathEntry location="E:/path/to/local/repo/com/oracle/ojdbc14/10.2.0.3.0/ojdbc14-10.2.0.3.0.jar"/>
    <context id="DB2Tables" targetRuntime="MyBatis3">
  
        <!-- 是否去除自动生成的注释 true:是,false:否 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!-- 数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <!-- MSSQL: driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
            connectionURL="jdbc:sqlserver://localhost:3306;DatabaseName=ibatis" -->
        <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
                        connectionURL="jdbc:oracle:thin:@192.168.2.141:1515:apptest" userId="zj100_apptest"
                        password="zj100">
        </jdbcConnection>
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!---Java 实体的生成 -->
        <!-- targetProject:自动生成代码的位置 -->
        <javaModelGenerator targetPackage="cn.sh.zj100.model"
                            targetProject="D:\workspace\mybatis-generator-core-1.3.2-bundle\mybatis-generator-core-1.3.2\lib">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="fasle"/>
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="false"/>
        </javaModelGenerator>
  
        <!--sqlMapper XML文件的生成信息,包括生成路径等 -->
        <sqlMapGenerator targetPackage="sqlmap"
                         targetProject="D:\workspace\mybatis-generator-core-1.3.2-bundle\mybatis-generator-core-1.3.2\lib">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!--应用接口的生成信息 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="cn.sh.zj100.dao" implementationPackage="cn.sh.zj100.dao.impl"
                             targetProject="D:\workspace\mybatis-generator-core-1.3.2-bundle\mybatis-generator-core-1.3.2\lib">
            <property name="enableSubPackages" value="false"/>
            <property name="methodNameCalculator" value="extended"/>
        </javaClientGenerator>
        <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->
  
        <!--<table schema="APPTEST" tableName="BBS_FORUMS" enableInsert="true"
        enableSelectByPrimaryKey="true" enableSelectByExample="false"
        enableUpdateByPrimaryKey="true" enableDeleteByPrimaryKey="false"
         enableDeleteByExample="false" enableCountByExample="false"
         enableUpdateByExample="false" modelType="flat"/>-->
        <table schema="APPTEST" tableName="BBS_FORUMS" enableInsert="true" enableSelectByPrimaryKey="true"
               enableSelectByExample="false" enableUpdateByPrimaryKey="true" enableDeleteByPrimaryKey="false"
               enableDeleteByExample="false" enableCountByExample="false" enableUpdateByExample="false"
               modelType="flat"/>
    </context>
</generatorConfiguration>
 
 
===================================
 
 以mysql数据库为例子的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>
    <!-- classPathEntry:数据库的JDBC驱动的jar包地址 -->
    <classPathEntry location="D:\dbjars\mysql\mysql-connector-java-5.1.10-bin.jar"/>
 
    <context id="DB2Tables" targetRuntime="MyBatis3">
 
        <!-- 是否去除自动生成的注释 true:是,false:否 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!-- 数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <!-- MSSQL: driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
            connectionURL="jdbc:sqlserver://localhost:3306;DatabaseName=ibatis" -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/jchome" userId="root"
                        password="root">
        </jdbcConnection>
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!---Java 实体的生成 -->
        <!-- targetProject:自动生成代码的位置 -->
        <javaModelGenerator targetPackage="cn.sh.zj100.model"
                            targetProject="D:\workspace\mybatis-generator-core-1.3.2-bundle\mybatis-generator-core-1.3.2\lib">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="fasle"/>
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="false"/>
        </javaModelGenerator>
 
        <!--sqlMapper XML文件的生成信息,包括生成路径等 -->
        <sqlMapGenerator targetPackage="sqlmap"
                         targetProject="D:\workspace\mybatis-generator-core-1.3.2-bundle\mybatis-generator-core-1.3.2\lib">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!--应用接口的生成信息 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="cn.sh.zj100.dao" implementationPackage="cn.sh.zj100.dao.impl"
                             targetProject="D:\workspace\mybatis-generator-core-1.3.2-bundle\mybatis-generator-core-1.3.2\lib">
            <property name="enableSubPackages" value="false"/>
            <property name="methodNameCalculator" value="extended"/>
        </javaClientGenerator>
        <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->
        <table schema="jchome" tableName="jchome_ad" domainObjectName="Ad" enableInsert="true"
               enableSelectByPrimaryKey="true"
               enableSelectByExample="false"
               enableUpdateByPrimaryKey="false"
               enableDeleteByPrimaryKey="false"
               enableDeleteByExample="false"
               enableCountByExample="false"
               enableUpdateByExample="false" modelType="flat">
            <generatedKey column="uid" sqlStatement="MySql" identity="true"/>
        </table>
 
    </context>
</generatorConfiguration>
 
===================================

这个配置文件提供了 mybatis-generator所需要的参数信息:

  * 其中classPathEntry 是引用的jdbc的类路径,这里将jdbc jar和generator的jar包放在一起了;
  * commentGenerator 是用来除去时间信息的,这在配合类似subversion的代码管理工具时使用很有效,因为可以减少没有必要的注释迁入;
  * jdbcConnection是指定的jdbc的连接信息;
  * javaTypeResolver式类型转换的信息,这里并没有用到;
  * javaModelGenerator是模型的生成信息,这里将指定这些Java model类的生成路径;
  * sqlMapGenerator是mybatis 的sqlMapper XML文件的生成信息,包括生成路径等;
  * javaClientGenerator是应用接口的生成信息;
  * table是用户指定的被生成相关信息的表,它必须在指定的jdbc连接中已经被建立。

 
3.修改你的gererator.bat文件:
@echo off
echo==========mybatis开始生成代码================

java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite

@echo==========mybatis生成代码完毕================
 
4.执行bat文件,即生成相关的代码
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics