<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 12907字,需瀏覽 26分鐘

           ·

          2021-02-06 12:34

          Java技術(shù)棧

          www.javastack.cn

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



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

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

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

          以下的工具使用的都是 IDEA,另外,關(guān)注公眾號Java技術(shù)棧,在后臺回復: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ù)棧,在后臺回復:Maven,可以獲取我整理的 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>

              <!-- 本地數(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

          在原基礎上添加一些內(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>
              <!--在原基礎上添加 這些就好了-->
              <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 雙擊運行

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

          2、XML 配置詳解

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

          2.1 優(yōu)先

          推薦查看官方的文檔。

          2.2 官網(wǎng)沒有的

          2.2.1 property 標簽

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

          2.2.1.1 分隔符相關(guān)

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

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

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

          2.2.1.2 編碼

          默認是使用當前的系統(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 標簽

          plugins 標簽用來擴展或修改代碼生成器生成的代碼。

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

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

          <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 標簽

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

          默認配置:

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

          suppressAllComments:阻止生成注釋, 默認值是false。

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

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

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

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

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






          關(guān)注Java技術(shù)棧看更多干貨



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

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  人人人人人操 | 成人污污污www | 久久午夜鲁丝片 | 黄色成人视频网站 | 成人在线观看毛片 |