爲什麼要使用 Mybatis generator?
- 因爲在使用 Mybatis 時需要書寫大量的 Mapping 文件,而手動書寫容易出錯,因爲配置它的 XML 文件是一個很繁瑣的事情,所以 Mybatis 後來開發出了一個較簡易的工具來幫助生成 Dao、Model、Mapping 等相關文件,我們自然要使用啦
使用方法:
- 下載相關 jar:MyBatis Generator Release 1.3.6 因爲我使用的是 MySQL,所以同時還需要 mysql-connector-java-5.1.34.jar
- 配置 generatorConfig.xml,具體配置方法詳見官方文檔 MyBatis Generator Quick Start Guide 或者直接看官方的 example,然後修改一下就可以了 MyBatis GeneratorXML Configuration File Reference 下面是我對項目的配置
<?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="/myjava/authority/generator/mysql-connector-java-5.1.34.jar" /> <!-- 1 -->
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3308/permission?characterEncoding=utf8" userId="root" password="123456"> <!-- 2 -->
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成模型的包名和位置 -->
<javaModelGenerator targetPackage="com.lxb.model" targetProject="/myjava/authority/generator/src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成的映射文件包名和位置 -->
<sqlMapGenerator targetPackage="com.lxb.mapper" targetProject="/myjava/authority/generator/src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成DAO的包名和位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.lxb.dao" targetProject="/myjava/authority/generator/src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 要生成那些表 -->
<table tableName="sys_user" domainObjectName="SysUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="sys_dept" domainObjectName="SysDept" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="sys_acl" domainObjectName="SysAcl" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="sys_acl_module" domainObjectName="SysAclModule" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="sys_role" domainObjectName="SysRole" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="sys_role_acl" domainObjectName="SysRoleAcl" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="sys_role_user" domainObjectName="SysRoleUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
<table tableName="sys_log" domainObjectName="SysLog" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
</context>
</generatorConfiguration>
- 最後一步,執行生成語句(注意我這裏沒有指定路徑,因爲我是直接在 generator 路徑下執行的命令):
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
之後,Mybatis generator 就會在 src 目錄下生成 dao、model、mapper三個文件夾,包含對應的文件