MyBatis的逆向工程,MyBatis逆向工程
所謂逆向工程,就用代碼自動產生,資料庫中 表對應的 pojo, mapper.xml和mapper介面,這樣自己就可以省去寫pojo和通用的 增刪查改 sql 語句了,大大的提高了開發效率。
mybatis 的逆向工程實現有很多種方法,這裡說我經常使用的一種。
步驟:
1.建立一個java工程,匯入需要的jar包。:
mybatis,mybatis-generator-core,資料庫驅動(資料庫選擇一個即可)必須選擇,log4j可選可不選。
2.建立一個GeneratorSqlMap類,代碼如下:
import java.io.File;import java.io.IOException;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.XMLParserException;import org.mybatis.generator.internal.DefaultShellCallback;public class GeneratorSqlmap {public void generator() throws Exception{List<String> warnings = new ArrayList<String>();boolean overwrite = true;//指定 逆向工程設定檔File configFile = new File("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 {GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();generatorSqlmap.generator();} catch (Exception e) {e.printStackTrace();}}}
3.建立一個generatorConfig.xml(放在工程目錄下)
<?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="testTables" targetRuntime="MyBatis3"><commentGenerator><!-- 是否去除自動產生的注釋 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--資料庫連接的資訊:驅動類、串連地址、使用者名稱、密碼 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/e3mall" userId="root"password="root"></jdbcConnection><!-- 預設false,把JDBC DECIMAL 和 NUMERIC 類型解析為 Integer,為 true時把JDBC DECIMAL 和 NUMERIC 類型解析為java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetProject:產生PO類的位置 --><javaModelGenerator targetPackage="com.e3mall.pojo"targetProject=".\src"><!-- enableSubPackages:是否讓schema作為包的尾碼 --><property name="enableSubPackages" value="false" /><!-- 從資料庫返回的值被清理前後的空格 --><property name="trimStrings" value="true" /></javaModelGenerator> <!-- targetProject:mapper對應檔產生的位置 --><sqlMapGenerator targetPackage="com.e3mall.mapper"targetProject=".\src"><!-- enableSubPackages:是否讓schema作為包的尾碼 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:mapper介面產生的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.e3mall.mapper"targetProject=".\src"><!-- enableSubPackages:是否讓schema作為包的尾碼 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 指定資料庫表 --><table schema="" tableName="tb_content"></table><table schema="" tableName="tb_content_category"></table><table schema="" tableName="tb_item"></table><table schema="" tableName="tb_item_cat"></table><table schema="" tableName="tb_item_desc"></table><table schema="" tableName="tb_item_param"></table><table schema="" tableName="tb_item_param_item"></table><table schema="" tableName="tb_order"></table><table schema="" tableName="tb_order_item"></table><table schema="" tableName="tb_order_shipping"></table><table schema="" tableName="tb_user"></table></context></generatorConfiguration>
4.直接執行Generator類的main方法。執行的效果如下:
這樣就產生了對應的 pojo,mapper.xml和mapper介面。我們再將它們拷貝到我們的項目中使用,這樣我們就省去了寫了很多代碼。
-
頂
-
0
-
踩
-
0
查看評論