需求:
执行语句:
java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
geterator配置文件:
<?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 location="D:\software\lib\mysql-connector-java-5.1.21.jar" /> -->
<!-- 驱动包存放的路径-->
<classPathEntry location="C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>(suppressAllComments*阻止**生成注释)
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 数据库链接URL、用户名、密码 -->
(
driverClass
:访问数据库的JDBC驱动程序的完全限定类名connectionURL
:访问数据库的JDBC连接URL
该元素还有两个可选属性:
userId
:访问数据库的用户IDpassword
:访问数据库的密码
<!-- <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/sy" userId="sypro" password="sypro"> -->
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" userId="msa" password="msa">
</jdbcConnection>
<javaTypeResolver>(javaTypeResolver 指定JDBC类型和Java类型如何转换 )
<property name="forceBigDecimals(可以控制是否强制
DECIMAL
和NUMERIC
类型的字段转换为Java类型的java.math.BigDecimal
,默认值为false
,一般不需要配置)" value="false" />
</javaTypeResolver>
<!-- 生成模型的包名和位置 -->
<javaModelGenerator targetPackage="sy.model" targetProject="D:\study\mybatis\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings( 否对数据库查询结果进行
trim
操作,如果设置为true
就会生成类似这样public void setUsername(String username) {this.username = username == null ? null : username.trim();}
的setter
方法。默认值为false
)" value="true"
/>
</javaModelGenerator>
<!-- 生成的映射文件包名和位置 -->
(suppressAllComments)
<sqlMapGenerator targetPackage="sy.mapping" targetProject="D:\study\mybatis\src">
<property name="enableSubPackages(如果true
,MBG会根据catalog
和schema
来生成子包。如果false
就会直接用targetPackage
属性。默认为false)
" value="true" />
</sqlMapGenerator>
<!-- 生成DAO的包名和位置 -->
<javaClientGenerator type="XMLMAPPER(XMLMAPPER所有的方法都在XML中,接口调用依赖XML文件)" targetPackage="sy.dao"(targetPackage生成的包名) targetProject="D:\study\mybatis\src(targetProject生成包的路径)">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 要生成那些表(更改tableName和domainObjectName就可以) -->
(1.domainObjectName
:生成对象(实体类)的基本名称。如果没有指定,MBG会自动根据表名来生成名称)
(2.enableXXX
:XXX代表多种SQL方法,该属性用来指定是否生成对应的XXX语句。)
<table tableName="tbug" domainObjectName="Bug" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="tmenu" domainObjectName="Menu" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="tonline" domainObjectName="Online" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="tresource" domainObjectName="Resource" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="trole" domainObjectName="Role" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="trole_tresource" domainObjectName="RoleResource" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="tuser" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="tuser_trole" domainObjectName="UserRole" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
</context>
</generatorConfiguration>
其它相关:
- MyBatis3:
- ANNOTATEDMAPPER:基于注解的Mapper接口,不会有对应的XML映射文件
- MIXEDMAPPER:XML和注解的混合形式,(上面这种情况中的)
SqlProvider
注解方法会被XML替代。 - XMLMAPPER:所有的方法都在XML中,接口调用依赖XML文件。
- MyBatis3Simple:
- ANNOTATEDMAPPER:基于注解的Mapper接口,不会有对应的XML映射文件
- XMLMAPPER:所有的方法都在XML中,接口调用依赖XML文件。