mybatis generator使用筆記

mybatis generator是什麼

這是一個官方的代碼生成器,千萬不要搞混了,這是一個工具,相當於一個插件給我們來使用,可以快速的幫我們生成持久層代碼,代碼生成好之後,就跟這個工具沒什麼關係了,我爲什麼要寫這個呢,😂,看看這個Gif就知道了,就比如搞一個用戶的實體類,遇到字段多的,😨,得寫到什麼時候去啊,你們不用的話,也可以像我這樣用,打開你的可視化工具,Navicat或者SQLyong等等其他的,點擊設計表,然後點最上面的字段,在按住Ctrl鍵然後 C V 大法,但是用了generator後你連SQL語句都不用寫了
在這裏插入圖片描述

怎麼使用它

官方使用指南
在這裏插入圖片描述
還是老話,什麼東西,看官網是很好的習慣,那你想要使用它,這個插件你是不是得,裝上去啊,上面也有 jar 包方式的,也有作爲maven方式的,這裏最新版本是 1.4.0這個是最新的版本,
在這裏插入圖片描述
在這裏插入圖片描述
這裏有一個環境要求
在這裏插入圖片描述
除了JRE之外,MBG沒有其他依賴項。要求Java 8或以上。此外,還需要實現DatabaseMetaData接口的JDBC驅動程序

上面的看完了,創建一個maven工程

我這裏就是用maven方式的了

步驟一:

使用它,增加到 maven插件的形式

<build>
        <plugins>
            <!-- mybatis generator 自動生成代碼插件 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.4.0</version>
                <configuration>
                    <!-- 放置的配置文件 -->
                    <configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.37</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

這個插件需要連接數據庫獲得表結構,所以需要加驅動包依賴,注意對應,

步驟二

創建一個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="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">

        <!--
         對錶名和列名前後增加一個單引號 也可以不要,但是如果表名或者字段名是mysql的關鍵字
         ,比如table,from等,這時就可以加上一個 反引號
         -->
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <!--覆蓋生成XML文件 就是當你重新想生成的時候呢,就會覆蓋,以前自己寫好定義的方法也沒有了-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />

        <!-- 生成的實體類添加toString()方法 -->
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />

        <!-- 不生成註釋,默認生成註釋也是一推英文-->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!-- 數據庫連接配置 8.0的夥伴注意下改下 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/waterall"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <!-- domain類的位置 也就是 實體類 別人也會叫 entity javaBean等 注意 targetPackage 對應-->
        <javaModelGenerator targetProject="src\main\java"
                            targetPackage="club.adger.domain"/>

        <!-- mapper xml的位置 -->
        <sqlMapGenerator targetProject="src\main\resources"
                         targetPackage="mapper"/>

        <!--
         mapper類的位置 下面的 type 有三種方式
         ANNOTATEDMAPPER(生成的SQL全部在Java種)
         MIXEDMAPPER(生成的SQL部分在Java中,部分在XML中)
         XMLMAPPER(生成的SQL全部在XML中) 我一般使用這種
         -->
        <javaClientGenerator targetProject="src\main\java"
                             targetPackage="club.adger.mapper"
                             type="XMLMAPPER" />

        <!-- 表名 後面是實體類名字 如果這麼寫的話 會生成一個-->
        <!-- 表名 後面是實體類名字 這麼寫是爲了不生成一個 Example -->
        <table tableName="ums_member" domainObjectName="UserMember" enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"/>
    </context>
</generatorConfiguration>

這裏我已經寫好了 38 張表的對應,只需要點下就可以生成了,Example用的好對我們的開發效率有極大的提高,注意:只對單表的增刪改查,文件過多的時候,我就不太喜歡了,我主要是喜歡的自動生成實體類,這裏我就不要了,你可以在generatorConfig.xml一張一張生成,不過以前的需要註釋掉,生成一張,註釋一張,如果你想要這個Example呢,你就像下面這樣改,,我這裏包跟類都沒寫,讓他給我幹活的,一個字懶😂,這裏有一個箭頭,是因爲下面的我下載了一個插件,叫Free mybatis plug

  <table tableName="ums_member" domainObjectName="UserMember"/>

懂了吧
在這裏插入圖片描述
在這裏插入圖片描述

擴展

如果你怕弄錯模塊生成,就這樣幹注意,旁邊的
在這裏插入圖片描述
在這裏插入圖片描述
爲什麼說這個呢,因爲怕弄錯唄,就像下面一樣,如果模塊多了起來
在這裏插入圖片描述
對了那個覆蓋 XML配置 只有 1.3.7之後纔有的
歡迎加入QQ羣:793858121 討論交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章