1. 程式人生 > >IDEA下實現mybatis的逆向工程

IDEA下實現mybatis的逆向工程

一:什麼是逆行工程。

    MyBatis是一款優秀的持久層框架,它支援定製化SQL、儲存過程以及高階對映。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和對映原生資訊,將介面和 Java 的 POJOs(Plain Old Java Objects,普通的 Java物件)對映成資料庫中的記錄。

    當資料庫表比較多的時候,重複的建立pojo物件和簡單的資料庫表的(CRUD)操作的mapper,效率低,官方給出了使用mybatis Generator用來根據資料庫表逆向生成pojo和mapper檔案,極大的方便開發。

    下面我們看如何使用Generator逆向生成檔案。

二:如何實現。

    1、在IDEA上建立maven工程。

    2、在maven中新增依賴。

        分別是mybatis-generator-maven-plugin外掛,log4j、mybatis、mysql、mybatis-generator的依賴。

<build>
    <plugins>
      <!-- mybatis-generator自動生成程式碼外掛 -->
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.6</version>
      </plugin>
    </plugins>
  </build>
  <dependencies>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
      </dependency>
      <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.2.3</version>
      </dependency>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>6.0.6</version>
      </dependency>
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.6</version>
    </dependency>
  </dependencies>

    3:修改generationConfig.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="mybatisGenerator" targetRuntime="MyBatis">
            <commentGenerator>
                <!-- 是否去除自動生成的註釋 true:是 : false:否 -->
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
            <!--資料庫連線的資訊:驅動類、連線地址、使用者名稱、密碼 -->
            <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                            connectionURL="jdbc:mysql://localhost:3306/mybatisGenerator?
                                serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true" userId="root"
                            password="12345">
            </jdbcConnection>

            <!-- 預設false,把JDBC DECIMAL 和 NUMERIC 型別解析為 Integer,為 true時把JDBC DECIMAL 和
                NUMERIC 型別解析為java.math.BigDecimal -->
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>

            <!-- targetProject:生成PO類的位置 -->
            <javaModelGenerator targetPackage="pojo"
                                targetProject=".\src">
                <!-- enableSubPackages:是否讓schema作為包的字尾 -->
                <property name="enableSubPackages" value="false" />
                <!-- 從資料庫返回的值被清理前後的空格 -->
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
            <!-- targetProject:mapper對映檔案生成的位置 -->
            <sqlMapGenerator targetPackage="mapper"
                             targetProject=".\src">
                <!-- enableSubPackages:是否讓schema作為包的字尾 -->
                <property name="enableSubPackages" value="false" />
            </sqlMapGenerator>
            <!-- targetPackage:mapper介面生成的位置 -->
            <javaClientGenerator type="XMLMAPPER"
                                 targetPackage="mapper"
                                 targetProject=".\src">
                <!-- enableSubPackages:是否讓schema作為包的字尾 -->
                <property name="enableSubPackages" value="false" />
            </javaClientGenerator>
            <!-- 指定資料庫表 -->
            <table tableName="items"></table>
            <table tableName="orders"></table>
            <table tableName="orderdetail"></table>
            <table tableName="user"></table>
          
            <!-- 有些表的欄位需要指定java型別
             <table schema="" tableName="">
                <columnOverride column="" javaType="" />
            </table> -->
        </context>
    </generatorConfiguration>

    4:官方提供的java類。

public class Generator {
    public void generator() throws Exception{
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
       /**指向逆向工程配置檔案*/
        File configFile = new File("src/generatorConfig.xml");
        ConfigurationParser parser = new ConfigurationParser(warnings);
        Configuration config = parser.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 {
            Generator generatorSqlmap = new Generator();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

    5:run該main方法,生成pojo和mapperr物件。


三:總結,其中出現的問題。

    1、

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. 

    這裡使用的是mysql6.0.6,規定

driverClass="com.mysql.cj.jdbc.Driver"
    2、
java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one 
time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) 
to use a more specifc time zone value if you want to utilize time zone support.
   

    時間區域時差問題,serverTimezone=UTC”不然會因為時區問題報錯,這裡用了CTT中國臺灣時區避免產生8小時時差。

connectionURL="jdbc:mysql://localhost:3306/mybatisGenerator?
                            serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true"

相關推薦

IDEA:在maven實現mybatis逆向工程

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

IDEA實現mybatis逆向工程

一:什麼是逆行工程。    MyBatis是一款優秀的持久層框架,它支援定製化SQL、儲存過程以及高階對映。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和對映原生資訊,將介面和 Java

用Intillij IDEA實現MyBatis逆向工程

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

IDEA 中生成 MyBatis 逆向工程實踐

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

Mac使用mybatis逆向工程遇到的問題

bat mybatis 問題 工程 gen lmap myba tar 但是 2017-08-29 使用mybatis逆向工程生成代碼時工程運行成功,但是沒有代碼生成。 出現問題的代碼: <sqlMapGenerator targetPackage="xx.xx.m

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

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

idea中使用mybatis逆向工程

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

Mybatis】簡單實現mybatis逆向工程

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

IDEAmybatis逆向工程工具和坑點

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

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

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

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

MybatisIDEA 中使用 generator 逆向工程生成 pojo,mapper

使用mybatis可以逆向生成pojo和mapper檔案有很多種方式,我以前用的是mybtais自帶的generator包來生成,連線如下:mybatis自己生成pojo 今天我用了IDEA上使用maven專案來生成pojo和mapper,具體步驟如下 1,先配置pom.xml檔案,先配置外

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

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

Macmybatis逆向工程執行成功卻沒有生成相應的包和檔案-解決辦法

需要注意兩個地方:StartServer.java和genarator.xml StartServer.java: package generator0523; import org.mybatis.generator.api.MyBatisGenerato

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

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

Mybatis逆向工程_使用maven-Idea

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

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

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

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