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 討論交流