逆向工程搭建的一般步驟
一、下載jar包:

二、配置逆向工程文件:
<?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>
<context id="MybatisGenerator" targetRuntime="MyBatis3">
<!-- 是否去除逆向生成中的注釋 true:是;false:否-->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 配置數據庫連接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.1.150:3306/cat?characterEncoding=utf8" userId="root"
password="123456">
</jdbcConnection>
<!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal -->
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 指定javabean 生成的路徑 -->
<javaModelGenerator targetPackage="www.nixianggongcheng.com.role.model" targetProject=".\src\main\java">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 指定sql映射文件 生成的路徑 -->
<sqlMapGenerator targetPackage="www.nixianggongcheng.com.role.dao" targetProject=".\src\main\java">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- 指定DAO接口 生成的位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="www.nixianggongcheng.com.role.dao"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定每個表的生成策略 表名 生成的類名-->
<table tableName="u_role"></table>
</context>
</generatorConfiguration>
三、編寫java啟動類,執行逆向工程的配置文件,生成數據庫中指定表的model和dao層:(注意:啟動類中創建File中的路徑是從本項目中開始的,需要找到從項目開始寫起,直到找到配置文件的路徑即可)
public class MyGenerator {
public void generate() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("conf/GeneratorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
MyGenerator myGenerator = new MyGenerator();
myGenerator.generate();
} catch (Exception e) {
e.printStackTrace();
}
}
}
四、處理下自動生成的model和dao層:需要非常注意一下事項:
model層中:
1、實體類中只有屬性和set、get方法,需要自己創建空參構造方法、全參構造方法、重寫toString等方法;
dao層中:
1、接口中的方法最好是全部刪掉,根據自己的需要重新寫自己的方法;
2、配置文件中的實體類與數據庫映射的關系中javaType屬性最好刪掉,不然有可能會對ssm、ssh框架產生異常;配置文件中的sql最好全部刪掉,根據自己的需要重新寫sql語句;
五、將處理的model和dao層復制到當前工作的項目中去:
將經過處理的model和dao層中的類和配置文件,復制到當前工作開發的項目中去,這樣可以快速、高效的開發項目;
總結:通過逆向工程主要是獲取model中的實體類和dao層中配置文件中實體類與數據庫表的映射關系;
