1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 12907字,需瀏覽 26分鐘

         ·

        2021-02-06 12:34

        Java技術(shù)棧

        www.javastack.cn

        關(guān)注閱讀更多優(yōu)質(zhì)文章



        在使用 mybatis 過程中, 當(dāng)手寫 JavaBeanXML 寫的越來越多的時候, 就越來越同意出錯。這種重復(fù)性的工作, 我們當(dāng)然不希望做那么多。

        還好, mybatis 為我們提供了強(qiáng)大的代碼生成--MybatisGenerator

        通過簡單的配置, 我們就可以生成各種類型的實體類, Mapper接口, MapperXML文件, Example對象等。通過這些生成的文件, 我們就可以方便的進(jìn)行單表進(jìn)行增刪改查的操作。

        以下的工具使用的都是 IDEA,另外,關(guān)注公眾號Java技術(shù)棧,在后臺回復(fù):idea,可以獲取我整理的 IDEA 系列教程,非常齊全。

        1、創(chuàng)建代碼生成器

        1.1 創(chuàng)建Maven項目

        1.1.1 菜單上選擇新建項目

        File | New | Project

        1.1.2 選擇左側(cè)的Maven

        由于我們只是創(chuàng)建一個普通的項目, 此處點擊 Next即可。

        1.1.3 輸入GroupIdArtifactId

        在我的項目中,

        GroupId 填 com.homejim.mybatis

        ArtifactId 填 mybatis-generator

        點擊 Next。

        1.1.4 Finish

        通過以上步驟, 一個普通的Maven項目就創(chuàng)建好了。另外,關(guān)注公眾號Java技術(shù)棧,在后臺回復(fù):Maven,可以獲取我整理的 Maven 系列教程,非常齊全。

        1.2 配置 generator.xml

        其實名字無所謂, 只要跟下面的 pom.xml 文件中的對應(yīng)上就好了。

        <?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>

            <!-- 本地數(shù)據(jù)庫驅(qū)動程序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>

                <!-- 數(shù)據(jù)庫的相關(guān)配置 -->
                <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>

                <!-- 相關(guān)表的配置 -->

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

        需要改一些內(nèi)容:

        1. 本地數(shù)據(jù)庫驅(qū)動程序jar包的全路徑(必須要改)。
        2. 數(shù)據(jù)庫的相關(guān)配置(必須要改
        3. 相關(guān)表的配置(必須要改
        4. 實體類生成存放的位置。
        5. MapperXML 生成文件存放的位置。
        6. Mapper 接口存放的位置。

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

        參考閱讀:公司 10 年老系統(tǒng)改造 Maven

        1.3 配置 pom.xml

        在原基礎(chǔ)上添加一些內(nèi)容。

        <?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>
            <!--在原基礎(chǔ)上添加 這些就好了-->
            <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>
            <!--到此結(jié)束-->
        </project>

        需要注意的是 configurationFile 中的文件指的是 generator.xml。因此路徑寫的是該文件的相對路徑, 名稱也跟該文件相同。

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

        1.4 使用及測試

        1.4.1 打開 Maven Projects 視圖

        在 IDEA 上, 打開:

        View | Tools | Windwos | Maven Projects

        1.4.2 Maven Projects 中雙擊 mybatis-generator

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

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

        1.4.3 雙擊運(yùn)行

        運(yùn)行正確后, 生成代碼, 得到如下的結(jié)構(gòu):

        2、XML 配置詳解

        僅僅是上面那么簡單的使用還不夠爽。那么我們就可以通過更改 generator.xml 配置文件的方式進(jìn)行生成的配置。

        2.1 優(yōu)先

        推薦查看官方的文檔。

        2.2 官網(wǎng)沒有的

        2.2.1 property 標(biāo)簽

        該標(biāo)簽在官網(wǎng)中只是說用來指定元素的屬性, 至于怎么用沒有詳細(xì)的講解。

        2.2.1.1 分隔符相關(guān)

        <property name="autoDelimitKeywords" value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        以上的配置對應(yīng)的是 mysql, 當(dāng)數(shù)據(jù)庫中的字段和數(shù)據(jù)庫的關(guān)鍵字一樣時, 就會使用分隔符。

        比如我們的數(shù)據(jù)列是 delete, 按以上的配置后, 在它出現(xiàn)的地方, 就變成 delete。

        2.2.1.2 編碼

        默認(rèn)是使用當(dāng)前的系統(tǒng)環(huán)境的編碼, 可以配置為 GBK 或 UTF-8。

        <property name="javaFileEncoding" value="UTF-8"/>

        我想項目為 UTF-8, 如果指定生成 GBK, 則自動生成的中文就是亂碼。

        2.2.1.3 格式化

        <!--格式化生成的 Java 代碼-->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
        <!--格式化生成的 XML-->
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>

        這些顯然都是可以自定義實現(xiàn)的的。

        2.2.2 plugins 標(biāo)簽

        plugins 標(biāo)簽用來擴(kuò)展或修改代碼生成器生成的代碼。

        在生成的 XML 中, 是沒有  這個標(biāo)簽的。該標(biāo)簽是配置緩存的。

        如果我們想生成這個標(biāo)簽, 那么可以 plugins 中進(jìn)行配置。

        <plugin type="org.mybatis.generator.plugins.CachePlugin" >
            <property name="cache_eviction" value="LRU"/>
        </plugin>

        比如你想生成的 JavaBean 中自行實現(xiàn) Serializable 接口。

        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />

        還能自定義插件。

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

        2.2.3 commentGenerator 標(biāo)簽

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

        默認(rèn)配置:

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

        suppressAllComments:阻止生成注釋, 默認(rèn)值是false。

        suppressDate: 阻止生成的注釋包含時間戳, 默認(rèn)為false。

        addRemarkComments: 注釋中添加數(shù)據(jù)庫的注釋, 默認(rèn)為 false。

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

        最后,關(guān)注公眾號Java技術(shù)棧,在后臺回復(fù):面試,可以獲取我整理的 Java 系列面試題和答案,非常齊全。

        作者:阿進(jìn)的寫字臺
        出處:https://www.cnblogs.com/homejim/
        本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。






        關(guān)注Java技術(shù)??锤喔韶?/strong>



        戳原文,獲取精選面試題!
        瀏覽 44
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

          <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            sao货水真多把你cao烂69视频 | 睡觉xxxxvideos乱 | 精品国产一区二区三区不卡蜜臂 | 男男h双腿涨灌play慎入动漫 | 久久性爱 | 黄色毛片一级 | 操逼xxxxx | 国产色呦呦 | 国产精品久久久久久久久软件 | 大香蕉伊久 |