generator是一個強大的工具,建好數據庫以後就能夠根據數據庫生成實體類,實體類mybatis接口,和xml文件 ##1.所需jar包java
mybatis-3.4.2.jar mysql-connector-java-5.1.21.jar mybatis-generator-core-1.3.0.jar
##2.編寫generator.xml文件mysql
<?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="C:\Users\huangsm@allinfinance.com\.m2\repository\mysql\mysql-connector-java\5.1.21\mysql-connector-java-5.1.21.jar" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 抑制警告 --> <property name="suppressTypeWarnings" value="true" /> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="false" /> <!-- 是否生成註釋代時間戳--> <property name="suppressDate" value="true" /> </commentGenerator> <!--數據庫鏈接的信息:驅動類、鏈接地址、用戶名、密碼 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.236.131:3306/test?characterEncoding=utf8" userId="root" password="1994713"> </jdbcConnection> <!-- <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:Mysql://localhost:3306/庫名子?characterEncoding=utf8" userId="用戶名" password="密碼" /> --> <!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析爲 Integer true,把JDBC DECIMAL 和 NUMERIC 類型解析爲java.math.BigDecimal --> <!-- <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> --> <!--生成Model類存放位置 --> <javaModelGenerator targetPackage="com.hsm.domain" targetProject="D:\AllinfinanceIDE\workspace2\testgwt\mybatis_generator\src\main\java"> <!-- 是否在當前路徑下新加一層schema,eg:fase路徑com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] --> <property name="enableSubPackages" value="false" /> <!-- 是否針對string類型的字段在set的時候進行trim調用 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!--生成映射文件存放位置 --> <sqlMapGenerator targetPackage="com.hsm.mapper" targetProject="D:\AllinfinanceIDE\workspace2\testgwt\mybatis_generator\src\main\java"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!--生成Dao類存放位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.hsm.dao" targetProject="D:\AllinfinanceIDE\workspace2\testgwt\mybatis_generator\src\main\java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- tableName:用於自動生成代碼的數據庫表;domainObjectName:對應於數據庫表的javaBean類名 --> <table schema="general" tableName="tt_user" domainObjectName="User"> <!--domain字段的命名規則,false:默認爲駝峯命名 true:按數據庫真實命名 --> <property name="useActualColumnNames" value="false"/> <!-- 忽略列,不生成bean 字段 --> <!-- <ignoreColumn column="FRED" /> --> <!-- 指定列的java數據類型 --> <!-- <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> --> </table> </context> </generatorConfiguration>
##3.自動生成命令,這個記得使用cmd執行sql
Java -jar 電腦上mybatis-generator-core-1.3.0.jar的絕對路徑 -configfile 電腦上generator.xml的絕對路徑 -overwrite
##4.使用java方式生成數據庫
package com.hsm; import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.exception.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback; public class BuildFile { public static void main(String[] args) throws InvalidConfigurationException, IOException, XMLParserException, SQLException, InterruptedException { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("D:\\AllinfinanceIDE\\workspace2\\testgwt\\mybatis_generator\\src\\main\\java\\com\\hsm\\generator.xml"); //輸入絕對路徑 ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config=null; config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = null; myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } }
##5.注意事項api
1. 注意你的各個文件的路徑位置,能夠自動生成 2.有的數據庫可能會有大小寫問題,我在這個地方出了問題的 3.注意理清catalog,scheme的區別,這個有助於編寫xml文件