Mybatis-Generator,讓你的懶體現到極致!

2021-03-02 語言之內

我是一名大二軟體工程專業的菜鳥學生,希望通過寫寫公眾號來提升自己的技能(儘管文章很水),但是我會一直堅持下去。

引用齊一的《這個年紀》裡面的歌詞「這個年紀的我們,徘徊在理想與現實之中」,雖然很迷茫,所以只能更加勤奮,加油。 

一 mybatis-generator介紹

在我們對用mybatis對資料庫進行操作的時候,需要編寫實體類、接口和接口映射文件等...雖然這些是一些比較簡單的工作,但是如果操作的表一旦多起來也是比較煩心的一件事,而且是一些無腦工作。現在,有一款mybatis-generation插件可以幫我們自動完成這些事情,只需要簡單的配置既可。

下面就是基於整合SpringBoot及maven提供的Mybatis-Generation插件進項詳細的介紹,以下代碼只需稍微改動就能運行。

首先,我們需要在pom.xml文件中導入generation的插件

<build>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
<!--配置generator插件-->
   <plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.5</version>
<!--在插件中注入資料庫驅動-->
    <dependencies>
     <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
     </dependency>
    </dependencies>

<!--指定配置文件的路徑-->
    <configuration>
     <configurationFile>${project.basedir}/src/main/resources/generatorConfig.xml</configurationFile>
     <verbose>true</verbose>
     <overwrite>true</overwrite>
    </configuration>
   </plugin>
  </plugins>
 </build>

generation的配置文件如下

這裡直接複製,可能dtd會爆紅,直接用IDE下載就可以了

<?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="context"    targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
<!--            是否去除自動生成的注釋 true:是;false:否-->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--資料庫連接的信息:驅動類、連結地址、用戶名、密碼-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/User?serverTimezone=UTC" userId="root" password="root">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--targetPackage:生成Model類存放位置-->
        <javaModelGenerator targetPackage="itcheng.springbootmybatis.pojo" targetProject="./src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--mapper接口的存放位置-->
        <sqlMapGenerator targetPackage="itcheng.springbootmybatis.mapper" targetProject="./src/main/java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--Dao類存放位置-->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="itcheng.springbootmybatis.dao"
                             targetProject="./src/main/java">
<!--enableSubPackages:是否讓schema作為包的後綴名-->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <!--指定資料庫表名-->
        <table tableName="user" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>

二 執行maven命令

在以上配置完成之後,點擊下面命令即可以運行

成功之後,在你指定的目錄下會生成的文件如下

通過這個插件,可以極大的提高我們的開發效率,專注於 業務開發。

在以上配置中有需要改動的地方:

資料庫的信息,mysql8版本之後需要加com.mysql.cj.jdbc.Driver。還有,資料庫後面跟上這個時區?serverTimezone=UTC

相關焦點

  • Mybatis基礎最全總結
    相關jar包<dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2<
  • 寫了10年的代碼,我最怕寫Mybatis這些配置,現在有詳解了
    DOCTYPE generatorConfiguration PUBLIC        "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"        "http://mybatis.org/dtd/mybatis-generator-config
  • MyBatis JPA Extra,MyBatis JPA 擴展 v2.2 發布
    值為資料庫序列名 IDENTITY generator無,根據資料庫自動生成方式 package org.apache.mybatis.jpa.test.domain;importAUTO,generator="serial") //@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="SEQ_MYBATIS_STUD") //@GeneratedValue(strategy=GenerationType.IDENTITY
  • Java程式設計師開發必備 MyBatis高級應用之逆向工程自動生成SQL語句
    MyBatis的一個主要的特點就是需要程式設計師自己編寫sql,那麼如果表太多的話,難免會很麻煩,所以mybatis官方提供了一個逆向工程,可以針對單表自動生成mybatis執行所需要的代碼,一般在開發中,常用的逆向工程方式是通過資料庫的表生成代碼。
  • SpringBoot + MyBatis + MySQL讀寫分離實踐!
    第一種是依靠中間件(比如:MyCat),也就是說應用程式連接到中間件,中間件幫我們做SQL分離;第二種是應用程式自己去做分離。AbstractRoutingDataSource基於特定的查找key路由到特定的數據源。它內部維護了一組目標數據源,並且做了路由key與目標數據源之間的映射,提供基於key查找數據源的方法。3. 實踐3.1. maven依賴<?
  • mybatis-plus 3.0-alpha 發布,代號:超級棒棒糖
    mybatis-plus 3.0-alpha 發布,代號:超級棒棒糖Mybatis-Plus 是一款 Mybatis
  • mybatis-plus 3.0.7 發布,辭舊迎新 - OSCHINA - 中文開源技術交流...
    Mybatis-Plus 是一款 Mybatis 動態 SQL 自動注入 Mybatis 增刪改查 CRUD 操作中間件, 減少你的開發周期優化動態維護
  • (四)Mybatis從入門到入土——別名、配置文件以及引入mapper
    這是mybatis系列第4篇。沒看前文的建議先去【Java冢狐】公眾號中查看前文,方便理解和掌握別名 為什麼需要使用別名?    在xml文件中有很多需要類完整的類名的地方,十分的冗長,為了減輕我們的工作量和複雜度mybatis支持我們給某個類起一個別名,然後通過別名可以訪問到指定的類型。
  • 深入理解 Mybatis 插件開發
    註:本案例以mybatis 3.4.7-SNAPSHOT版本為例。PS:文章是挺久之前寫的,當時花了一些心思,存到電腦的word裡,今天正好看到,就是裡面的源碼都是圖片,哈哈哈,湊合著看吧。更多 MyBatis乾貨,可以關注微信公眾號 Java後端 回復 666 下載。
  • SpringBoot+MyBatis+MySQL讀寫分離(實例)
    第一種是依靠中間件(比如:MyCat),也就是說應用程式連接到中間件,中間件幫我們做SQL分離;第二種是應用程式自己去做分離。這裡我們選擇程序自己來做,主要是利用Spring提供的路由數據源,以及AOP。然而,應用程式層面去做讀寫分離最大的弱點(不足之處)在於無法動態增加資料庫節點,因為數據源配置都是寫在配置中的,新增資料庫意味著新加一個數據源,必然改配置,並重啟應用。
  • Mybatis_day01
    更多資源分享就在【Java幫幫】微信公眾號與QQ空間Mybatis_day01前言Jdbc演變到mybatisjdbc
  • Python Yield Generator 詳解
    ,包括以下內容:什麼generator,生成generator的方法,generator的特點,generator基礎及高級應用場景,generator使用中的注意事項。當調用generator的next方法,generator會執行到yield 表達式處,返回yield表達式的內容,然後暫停(掛起)在這個地方,所以第一次調用next列印第一句並返回「first yield」。 暫停意味著方法的局部變量,指針信息,運行環境都保存起來,直到下一次調用next方法恢復。
  • 樹懶:懶到極致,甚至遇到危險都懶得逃跑,為何沒被天敵吃絕?
    樹懶可以說是懶漢界的代表,從它的名字中就可以體現出來它的懶——樹「懶」。在樹懶日常的生活中,懶是它的主場,甚至連逃生的時候都懶得逃跑。行動非常緩慢,看到樹懶這種「懶」的狀態,不少人都在想這種生物究竟是怎麼活到21世紀的?為什麼沒有被天敵吃到滅絕呢?
  • 從Mybatis源碼分心詳解你不知道的Mybatis用法和細節
    延遲加載我們知道,在 resultMap 中使用嵌套 select 查詢,並且全局聲明使用懶加載,可以實現按需加載嵌套屬性。其實並沒有,對於 Mybatis 而言,它可以知道getDepartment()這樣的方法會使用到關聯對象,但是toString()這樣的方法,它就沒辦法知道了。考慮我們會在重寫toString方法時使用到嵌套對象,所以,Mybatis 默認這個方法會觸發延遲加載。
  • Mybatis 強大的結果映射器ResultMap
    它可以讓你從 90% 的 JDBC ResultSets 數據提取代碼中解放出來,並在一些情形下允許你進行一些 JDBC 不支持的操作。實際上,在為一些比如連接的複雜語句編寫映射代碼的時候,一份 resultMap 能夠代替實現同等功能的數千行代碼。ResultMap 的設計思想是,對簡單的語句做到零配置,對於複雜一點的語句,只需要描述語句之間的關係就行了。
  • Mybatis【關聯映射】
    Mybatis【多表連接】我們在學習Hibernate的時候,如果表涉及到兩張的話,那麼我們是在映射文件中使用<set>..<many-to-one>等標籤將其的映射屬性關聯起來的…那麼在我們Mybatis中又怎麼做呢???
  • 兩步完成Generator逆向工程,自動生成MVC代碼
    1 第一步、配置pom文件添加mybatis-plus相關依賴,如下圖。2 創建資料庫及表新建一個數據,並創建一張表,通過逆向工程生成這張表對應的MVC三層代碼,創建數據表如下圖。4 測試逆向工程效果執行Generator類的main方法,生成如下目錄及文件,mapper、model、mybatis、service、service.impl、web等MVC三層。
  • Java Mybatis CRUD增刪改查
    DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.cy.dao.UserMapper"> <select id="getUserList
  • Mybatis 中xml和註解映射,原來如此簡單
    如果拿它跟具有相同功能的JDBC 代碼進行對比,你會立即發現省掉了將近 95% 的代碼。 致力於減少使用成本,讓用戶能更專注於 SQL 代碼。來自官網。result:標識一些簡單屬性,其中column屬性代表資料庫的欄位名,property代表查詢出來的欄位名映射到實體類的某個屬性。
  • mybatis-plus 2.1.8 發布,代號:囍
    mybatis-plus 是一款 mybatis 動態 SQL 自動注入 mybatis 增刪改查 CRUD 操作中間件。