天天看點

你還在手寫 CRUD?試試 MybatisGenerator,再也不用加班了!

在使用 mybatis 過程中, 當手寫 JavaBean和XML 寫的越來越多的時候, 就越來越同意出錯。這種重複性的工作, 我們當然不希望做那麼多。

還好, mybatis 為我們提供了強大的代碼生成--MybatisGenerator。

通過簡單的配置, 我們就可以生成各種類型的實體類, Mapper接口, MapperXML檔案, Example對象等。 通過這些生成的檔案, 我們就可以友善的進行單表進行增删改查的操作。

以下的工具使用的都是 IDEA

1、建立代碼生成器

1.1 建立Maven項目

1.1.1 菜單上選擇建立項目

File | New | Project

1.1.2 選擇左側的Maven

你還在手寫 CRUD?試試 MybatisGenerator,再也不用加班了!

由于我們隻是建立一個普通的項目, 此處點選 Next即可。

1.1.3 輸入GroupId和ArtifactId

在我的項目中,

GroupId 填 com.homejim.mybatis

ArtifactId 填 mybatis-generator

點選 Next。

1.1.4 Finish

通過以上步驟, 一個普通的Maven項目就建立好了。

1.2 配置 generator.xml

其實名字無所謂, 隻要跟下面的 pom.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>

    <!-- 本地資料庫驅動程式jar包的全路徑 -->
    <classPathEntry location="C:\Users\\Administrator\\.m2\repository\\mysql\\mysql-connector-java\\8.0.12\\mysql-connector-java-8.0.12.jar"/>
    <context id="context" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressAllComments" value="false"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>

        <!-- 資料庫的相關配置 -->
        <jdbcConnection
                driverClass="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/mybatis"
                userId="root"
                password="jim777"/>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- 實體類生成的位置 -->
        <javaModelGenerator
                targetPackage="com.homejim.mybatis.entity"
                targetProject=".\src\main\java">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- *Mapper.xml 檔案的位置  sqlMapGenerator-->
        <sqlMapGenerator
                targetPackage="mybatis/mapper"
                targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <!-- Mapper 接口檔案的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.homejim.mybatis.mapper"
                             targetProject=".\src\main\java">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!-- 相關表的配置 -->

        <table tableName="blog" />
    </context>
</generatorConfiguration>      

需要改一些内容:

本地資料庫驅動程式jar包的全路徑(必須要改)。

資料庫的相關配置(必須要改)

相關表的配置(必須要改)

實體類生成存放的位置。

MapperXML 生成檔案存放的位置。

Mapper 接口存放的位置。

如果不知道怎麼改, 請看後面的配置詳解。

1.3 配置 pom.xml

在原基礎上添加一些内容。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.homejim.mybatis</groupId>
    <artifactId>mybatis-generator</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--在原基礎上添加 這些就好了-->
    <build>
        <finalName>mybatis-generator</finalName>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                   <!--此處需要注意, 檔案與上面的檔案比對-->
                   <configurationFile>src/main/resources/generator.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <executions>
                    <execution>
                        <id>Generate MyBatis Artifacts</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.7</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    <!--到此結束-->
</project>      

需要注意的是 configurationFile 中的檔案指的是 generator.xml。 是以路徑寫的是該檔案的相對路徑, 名稱也跟該檔案相同。

到此, mybatis-generator 就可以使用啦。

1.4 使用及測試

1.4.1 打開 Maven Projects 視圖

在 IDEA 上, 打開:

View | Tools | Windwos | Maven Projects

你還在手寫 CRUD?試試 MybatisGenerator,再也不用加班了!

1.4.2 Maven Projects 中輕按兩下 mybatis-generator

在右側此時可以看到 Maven Projects 了。找到 mybatis-generator 插件。

mybatis-generator | Plugins | mybatis-generator | mybatis-generator

你還在手寫 CRUD?試試 MybatisGenerator,再也不用加班了!
你還在手寫 CRUD?試試 MybatisGenerator,再也不用加班了!

2、XML 配置詳解

僅僅是上面那麼簡單的使用還不夠爽。 那麼我們就可以通過更改 generator.xml 配置檔案的方式進行生成的配置。

2.1 優先

推薦檢視官方的文檔。

2.2 官網沒有的

2.2.1 property 标簽

該标簽在官網中隻是說用來指定元素的屬性, 至于怎麼用沒有詳細的講解。

2.2.1.1 分隔符相關

你還在手寫 CRUD?試試 MybatisGenerator,再也不用加班了!

這些顯然都是可以自定義實作的的。

2.2.2 plugins 标簽

plugins 标簽用來擴充或修改代碼生成器生成的代碼。

在生成的 XML 中, 是沒有 這個标簽的。 該标簽是配置緩存的。

如果我們想生成這個标簽, 那麼可以 plugins 中進行配置。

你還在手寫 CRUD?試試 MybatisGenerator,再也不用加班了!

還能自定義插件。

這些插件都蠻有用的, 感覺後續可以專門開一篇文章來講解。

2.2.3 commentGenerator 标簽

看名稱, 就知道是用來生成注釋用的。

預設配置:

<commentGenerator >
    <property name="suppressAllComments" value="false"/>
    <property name="suppressDate" value="false"/>
    <property name="addRemarkComments" value="false"/>
</commentGenerator>      

suppressAllComments: 阻止生成注釋, 預設值是false。

suppressDate: 阻止生成的注釋包含時間戳, 預設為false。

addRemarkComments: 注釋中添加資料庫的注釋, 預設為 false。

還有一個就是我們可以通過 type 屬性指定我們自定義的注解實作類, 生成我們自己想要的注解。 自定義的實作類需要實作 org.mybatis.generator.api.CommentGenerator。

最後,關注公衆号Java技術棧,在背景回複:面試,可以擷取我整理的 Java 系列面試題和答案,非常齊全。

作者:阿進的寫字台

出處:

https://www.cnblogs.com/homejim/\

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。 近期熱文推薦:

1.Java 15 正式釋出, 14 個新特性,重新整理你的認知!!

2.終于靠開源項目弄到 IntelliJ IDEA 激活碼了,真香!

3.我用 Java 8 寫了一段邏輯,同僚直呼看不懂,你試試看。。

4.吊打 Tomcat ,Undertow 性能很炸!!

5.《Java開發手冊(嵩山版)》最新釋出,速速下載下傳!

覺得不錯,别忘了随手點贊+轉發哦!

你還在手寫 CRUD?試試 MybatisGenerator,再也不用加班了!