In the most common use case, MyBatis Generator (MBG) is driven by an XML configuration file. The configuration file tells MBG:
The following is an example MBG configuration file. See the individual pages for each element for more information about the elements and the values of the attributes.
<?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="/Program Files/IBM/SQLLIB/java/db2java.zip" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <jdbcConnection driverClass="COM.ibm.db2.jdbc.app.DB2Driver" connectionURL="jdbc:db2:TEST" userId="db2admin" password="db2admin"> </jdbcConnection> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <javaModelGenerator targetPackage="test.model" targetProject="\MBGTestProject\src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="test.xml" targetProject="\MBGTestProject\src"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="\MBGTestProject\src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer" > <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>
Important notes about this file follow:
test.model.db2admin
in this case
(because the table
is in the DB2ADMIN schema). If the enableSubPackages
attribute was set to
false
,
then the package would be test.model
. The Java model generator should
also trim strings.
This means that the setters for any String properties will call the trim
function -
this is useful if your database might return blank characters at the end of character
columns.test.xml.db2admin
in this case
(because the table
is in the DB2ADMIN schema). If the enableSubPackages
attribute was set
to false
,
then the package would be test.xml
.test.dao.db2admin
in this case
(because the table
is in the DB2ADMIN schema). If the enableSubPackages
attribute was set
to false
,
then the package would be test.dao
. The DAO generator should generate
mapper interfaces that reference an XML configuration for MyBatis.
CustomerKey
,
Customer
,
CustomerMapper
, etc.) - rather than on the table name.false
(or not specified), then MBG would attempt to camel case
the column
names. In either case, the name can be overridden by the
<columnOverride>
element<selectKey>
element in the generated
<insert>
statement so that the newly generated key can be returned (using DB2 specific SQL).DATE_FIELD
will be mapped to a property called
startDate
. This will
override the default property which would be
DATE_FIELD
in this case, or dateField
if the useActualColumnNames
property was set to
false
.FRED
will be ignored. No SQL will list the field,
and no Java property will be generated.LONG_VARCHAR_FIELD
will be treated as a
VARCHAR
field, regardless of the actual data type.