1. 程式人生 > >用Intillij IDEA實現MyBatis逆向工程

用Intillij IDEA實現MyBatis逆向工程

一、什麼是MyBatis的逆向工程?
      MyBatis逆向工程是指用資料庫的表直接生成Java程式碼,利用MyBatis官方提供的逆向工程,可以針對單表自動生MyBatis執行所需要的程式碼(如po類,mapper.java和mapper.xml)
二、生成逆向工程的方式有多種,推薦使用Java程式和XML配置檔案的方式進行實現。
三、MyBatis逆向工程

1.資料庫配置檔案db.properties。這裡為了解耦,將資料庫資訊和要生成的表的資訊放到一個db.properties檔案裡。

<!--jdbc連線資料庫配置資訊-->
jdbc.driver = com
.mysql.jdbc.Driver jdbc.url = jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8 jdbc.username = root jdbc.password = 123456 #資料庫中要生成的表 jdbc.table.items = items jdbc.table.orders = orders jdbc.table.orderdetail = orderdetail jdbc.table.user = user

2.生成程式碼配置檔案generateConfig.xml。在該檔案中配置要生成哪些表的資訊,以及生成的PO類,mapper.xml和mapper.java所在的包,這裡為了今後能用MyBatis的代理進行開發,讓mapper.xml和mapper.java在同一個包中。

<?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>
    <!--引入資料庫配置檔案以解耦-->
    <properties resource="db.properties"
/>
<context id="testTables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 是否去除自動生成的註釋,true:是;false:否 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--資料庫連線的資訊:驅動類、連線地址、使用者名稱、密碼 --> <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"> </jdbcConnection> <!--Oracle資料庫的連線資訊--> <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userId="yycg" password="yycg"> </jdbcConnection> --> <!-- 預設false,把JDBC DECIMAL 和 NUMERIC 型別解析為 Integer,為 true時把JDBC DECIMAL 和 NUMERIC 型別解析為java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- targetProject:生成PO類的位置 --> <javaModelGenerator targetPackage="cn.michael.ssm.po" targetProject=".\src"> <!-- enableSubPackages:是否讓schema作為包的字尾 --> <property name="enableSubPackages" value="false" /> <!-- 從資料庫返回的值被清理前後的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- targetProject:mapper對映檔案生成的位置 --> <sqlMapGenerator targetPackage="cn.michael.ssm.mapper" targetProject=".\src"> <!-- enableSubPackages:是否讓schema作為包的字尾 --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- targetPackage:mapper介面生成的位置,遵循MyBatis規範,讓mapper.xml 和mapper.java在同一目錄下 --> <javaClientGenerator type="XMLMAPPER" targetPackage="cn.michael.ssm.mapper" targetProject=".\src"> <!-- enableSubPackages:是否讓schema作為包的字尾 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 指定資料庫表 --> <table tableName="${jdbc.table.items}"></table> <table tableName="${jdbc.table.orders}"></table> <table tableName="${jdbc.table.orderdetail}"></table> <table tableName="${jdbc.table.user}"></table> <!-- <table schema="" tableName="sys_user"></table> <table schema="" tableName="sys_role"></table> <table schema="" tableName="sys_permission"></table> <table schema="" tableName="sys_user_role"></table> <table schema="" tableName="sys_role_permission"></table> --> <!-- 有些表的欄位需要指定java型別 <table schema="" tableName=""> <columnOverride column="" javaType="" /> </table> --> </context> </generatorConfiguration>

3.執行生成程式GenerateSqlMap.java

import java.io.File;
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.internal.DefaultShellCallback;

public class GeneratorSqlmap {

    public void generator() throws Exception{

        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定 逆向工程配置檔案
        File configFile = new File("config/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();
        }

    }

}

Note:在實際開發中,建議另寫一個project來實現MyBatis的逆向工程,然後再從中挑選出實際需要的POJO類和mapper.xml,千萬不要在原有專案中直接生成,那樣會比較亂。MyBatis逆向工程比較簡單,可以直接做為模板工程進行應用,只需要改一下資料庫名,表名和包的路徑就行了,這裡提供專案下載地址,可以直接使用。
專案地址:下載連結

相關推薦

Intillij IDEA實現MyBatis逆向工程

一、什麼是MyBatis的逆向工程?       MyBatis逆向工程是指用資料庫的表直接生成Java程式碼,利用MyBatis官方提供的逆向工程,可以針對單表自動生MyBatis執行所需要的程式碼(如po類,mapper.java和mapper.xml)

IDEA:在maven下實現mybatis逆向工程

1.pom檔案 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org

IDEAmybatis逆向工程工具和坑點

mybatis逆向工程:使用mybatis generator外掛,將資料庫表自動生成Bean,mapper,dao檔案,幫你剩下大把時光,但其中有很多坑點,這裡也記錄下來。 1. 首先在pom.xml檔案下加外掛的配置 <build> <plugins> &l

Idea 使用Mybatis逆向工程操作步驟

初步接觸IDEA,還不熟悉相關的操作,記錄一下IDEA使用Mybatis逆向工程操作步驟1.引入JAR包:mybatis-generator-core<dependency> <groupId>org.mybatis.generat

IntelliJ IDEAMyBatis逆向工程生成工具的使用

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//

把Eclipse的逆向工程專案匯入IDEAMybatis逆向工程MyBatis Generator(MBG)的配置,下載地址

MyBatis Generator簡介; MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的程式碼生成器。 MyBatis Generator將生成: 與表結構匹配的Java POJO。這可能包括: 這些類之間存在適當的

Mybatis】簡單實現mybatis逆向工程

   之前做專案經常聽說通過mybatis逆向工程直接生成程式碼,直接使用即可,但是mybatis是如何通過逆向工程生成程式碼的,一直不是很瞭解,最近通過一個小例子實現了一下,下面簡單總結一下:    通過mybatis逆向工程自動生成*-mapper.java介面檔案,m

mybatis逆向工程idea通過pom外掛generator生成程式碼指令

一。    F:/ideaProject/springboot-mybatis-demo mybatis-generator:generate -e 環境搭建:   pom檔案: <?xml version="1.0" encoding="UTF

IDEA 中生成 MyBatis 逆向工程實踐

工程1.搭建 MyBatis Generator 插件環境 a. 添加插件依賴 pom.xml <!--mybatis 逆向生成插件--> <plugin> <groupId>org.mybatis

Mybatis逆向工程的pojo實現序列化介面的程式碼

這兩天在學習一個分散式的專案--淘淘商城,使用了Alibaba的dubbo作為通訊工具,zookeeper作為register,由於dubbo是基於socket協議的,所以在進行pojo傳輸的時候報了異常,因為pojo沒有實現序列化介面,就無法進行基於二進位制的序列化傳輸。報錯如下:    但是很麻煩的一

Mybatis逆向工程之三種實現方法

ntb roo obj tar ges detail 是否 href rip 1.逆向工程之原始方法 (1)下載兩個jar包:mysql-connector-java(6.x版本及以上的和5.x版本有所區別,主要是驅動和時區;詳情參見:https://blog.csdn.n

Mybatis逆向工程_使用maven-Idea

一個大神寫的gui:https://github.com/astarring/mybatis-generator-gui mybatis-generator有三種用法:命令列、eclipse外掛、maven外掛。個人覺得maven外掛最方便,可以在eclipse/intellij idea等ide上

Intellij Idea在開啟mybatis逆向工程生成的mapper.xml檔案時出現大塊黃色或者是綠色背景

當我們剛剛安裝完idea時,開啟一個mybatis工程的xml對映檔案會看到,介面上出現一大堆的黃色背景,特別難看 將游標放在黃色背景處,可以發現出現提示語“No data sources are configured to run this SQL and provide advance

Mybatis逆向工程自動生成程式碼(Ubuntu18.04-idea環境)

 最近在學習taotao商城專案,有一節是關於mybatis逆向工程的,參考了這個博文,https://blog.csdn.net/yerenyuan_pku/article/details/71909325 是在windows+eclipse環境下完成的,我用的是Ubuntu18.04和idea

idea mybatis逆向工程生成程式碼方法及問題解決

步驟 一. pom檔案中新增外掛 <build> <finalName>zsxt</finalName> <plugins> <plugin> <groupId&g

idea中使用mybatis逆向工程

Intellij IDEA中使用MyBatis-generator 自動生成MyBatis程式碼 1、在idea中安裝MyBatis-generator外掛,點選 File -> Settings -> Plugins,輸入mybatis-generator找到這個外掛,如下圖

mybatis 逆向工程 xml配置檔案生成mapper和po的方法

1.配置環境: 列表內容 2.整體步驟: 1.整體架構: 2.步驟 用eclipse 建立Java工程,在專案名下建立genreatorConfig.xml 配置檔案 配置檔

Idea基於maven專案建立mybatis逆向工程

1.開啟pom.xml檔案,新增如下配置:<!-- mybatis逆向工程 --> <plugin> <!-- 用maven mybatis外掛 如果不在plugin裡面新增依賴包得引用的話,會找不到相關得jar包, 在plugin外部得jar包,他不會去找到並執行,

Spring+SpringMVC+MyBatis深入學習及搭建(十)——MyBatis逆向工程

cat springmvc blank 不為 tex llc root from ssi 轉載請註明出處:http://www.cnblogs.com/Joanna-Yan/p/6973266.html 前面講到:Spring+SpringMVC+MyBatis深入學習及

Mybatis逆向工程

lca trace 配置 表操作 test stack type lmap ack 逆向工程可以自動生成mybatis執行所需要的代碼,但是只能是單表操作,表與表之間的關系無法映射出來。 單表操作可以容易實現緩存,方便分庫分表。 首先直接上個demo鏈接: http://p