說到三劍客,我想到的是網(wǎng)頁(yè)三劍客。

百度百科:

網(wǎng)頁(yè)三劍客,是一套強(qiáng)大的網(wǎng)頁(yè)編輯工具,最初是由Macrome" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)站運(yùn)營(yíng) > MyBatis三劍客

MyBatis三劍客

時(shí)間:2023-09-10 23:24:01 | 來源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-09-10 23:24:01 來源:網(wǎng)站運(yùn)營(yíng)

MyBatis三劍客:今天在本站上有人提問MyBatis三劍客是什么?于是乎心血來潮寫了這篇MyBatis三劍客來跟大家分享一下。

說到三劍客,我想到的是網(wǎng)頁(yè)三劍客。

百度百科:

網(wǎng)頁(yè)三劍客,是一套強(qiáng)大的網(wǎng)頁(yè)編輯工具,最初是由Macromedia公司開發(fā)出來的。由Dreamweaver,F(xiàn)ireworks,F(xiàn)lash三個(gè)軟件組成,俗稱網(wǎng)頁(yè)三劍客。
所謂XXX三劍客,意思就是某三個(gè)東西組合起來,會(huì)使得一款工具發(fā)揮其所未有的威力,最直接體現(xiàn)就是降低開發(fā)難度,提高開發(fā)效率。而MyBatis的三劍客是MyBatis-generator、MyBatis-plugin、MyBaits-pageHelper。

--generator:用于快速生成xml文件、注釋、實(shí)體類等等。
--plugin:能快速定位接口對(duì)應(yīng)的sql。
--pageHelper:是一款分頁(yè)插件。

1. MyBatis-generator

Introduction&QuickStart:http://mybatis.org/generator/

MyBatis-generator是MyBatis官方提供的一款代碼生成器??梢陨傻腟Ql語句有:

[1] insert
[2] update by primary key
[3] update by example (using a dynamic where clause)
[4] delete by primary key
[5] delete by example (using a dynamic where clause)
[6] select by primary key
[7] select by example (using a dynamic where clause)
[8] count by example
基本可以滿足絕大多數(shù)場(chǎng)景下的開發(fā)。不足之處就是只能生成單表的代碼,如果需要關(guān)聯(lián)多張表,還需要開發(fā)者我們對(duì)代碼進(jìn)行調(diào)整優(yōu)化。此外開發(fā)者也可在generator的基礎(chǔ)上進(jìn)行二次開發(fā),使得逆向一對(duì)一、一對(duì)多、多對(duì)一、多對(duì)多成為可能,而不再是幻想。

第一步:添加依賴(選最多人用的)

<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version></dependency>

第二步:添加插件

<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> <!-- mybatis用于生成代碼的配置文件 --> <verbose>true</verbose> <overwrite>true</overwrite> </configuration></plugin>

第三步:在resources目錄下創(chuàng)建generatorConfig.xml文件

由于篇幅過長(zhǎng),參考博文(寫的非常詳細(xì)):https://www.imooc.com/article/21444。

但是其中的table標(biāo)簽配置多余復(fù)雜,在此對(duì)其進(jìn)行簡(jiǎn)化,得出如下基本通用的配置文件(大伙可以參考參考):

<?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"><!-- generator配置 --><generatorConfiguration> <!-- generator需要數(shù)據(jù)庫(kù)驅(qū)動(dòng)才能逆向代碼,因此需要配置一個(gè)本地的數(shù)據(jù)庫(kù)驅(qū)動(dòng)包 --> <classPathEntry location="C:/software/mysql-connector-java-5.1.6.jar"/> <context id="mysql" targetRuntime="MyBatis3"> <!-- generator默認(rèn)會(huì)將逆向代碼追加到已有的xml文件中,但我們希望的是重寫 --> <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"></plugin> <!-- generator默認(rèn)會(huì)對(duì)逆向代碼添加注釋為了代碼更加簡(jiǎn)潔,我們希望去掉注釋 --> <commentGenerator> <property name="suppressAllComments" value="true"/> </commentGenerator> <!-- 配置數(shù)據(jù)庫(kù)連接池 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/db_name?serverTimezone=UTC" userId="username" password="password"> </jdbcConnection> <!-- java類型處理器 --> <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl"> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- model創(chuàng)建器 --> <javaModelGenerator targetPackage="XXX" targetProject="XXX"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成SQL map的XML文件創(chuàng)建器 --> <sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- Mapper接口處理器 --> <javaClientGenerator targetPackage="org.cjw.dao" type="XMLMAPPER" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 配置需要逆向的表(一個(gè)或者多個(gè)) --> <table tableName="table_name" domainObjectName="model_name" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"/> </context></generatorConfiguration>

第四步:運(yùn)行mybatis-generator插件

idea右側(cè)maven標(biāo)簽中的Plugins中運(yùn)行mybatis-generator即可生成相應(yīng)文件。




2. MyBatis-plugin

MyBatis-plugin是一款插件,可以快速定位接口對(duì)應(yīng)的sql語句位置。在系統(tǒng)日益復(fù)雜中,該優(yōu)勢(shì)就會(huì)愈發(fā)突出,非常推薦使用。

安裝過程:

點(diǎn)擊settings --> Plugins --> Marketplace --> 搜索Free MyBatis plugin --> install --> restart IDE。
安裝完成之后,打開mapper文件,會(huì)在左側(cè)出現(xiàn)綠色箭頭:

點(diǎn)擊接口自動(dòng)定位到接口對(duì)應(yīng)的sql語句,譬如點(diǎn)擊insert接口:

而xml文件也有綠色箭頭,可以定位到sql對(duì)應(yīng)的接口。

在MyBatis-plugin沒有出現(xiàn)的時(shí)候,一般都是ctrl+F來定位接口和sql位置,有時(shí)候會(huì)出現(xiàn)多個(gè)匹配選項(xiàng),需要一一對(duì)比,出錯(cuò)率還是挺高的,但是使用MyBatis-plugin既可以大大規(guī)避錯(cuò)誤的風(fēng)險(xiǎn)。

3. MyBatis-pageHelper

Introduction&QuickStart:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md

在開發(fā)中,查詢出來的數(shù)據(jù)可能有成千上萬條,為了性能,只會(huì)展示部分?jǐn)?shù)據(jù)給用戶查看,另外用戶也不可能需要所有的查詢數(shù)據(jù),因此分頁(yè)就顯得非常有必要了,主流數(shù)據(jù)庫(kù)都提供了分頁(yè)功能,如mysql提供limit語法,而oracle提供rownum字段供開發(fā)者對(duì)數(shù)據(jù)進(jìn)行分頁(yè)。那么分頁(yè)插件無非就是對(duì)sql進(jìn)行了封裝,對(duì)齊添加了對(duì)應(yīng)的分頁(yè)語句,可以打開插件打印sql功能來一探究竟。

第一步:添加依賴

<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version></dependency>

第二步:設(shè)置分頁(yè)

//[pageNum, pageSize] 頁(yè)碼 每頁(yè)顯示數(shù)量PageHelper.startPage(curPage,pageSize);PageInfo<Order> pageInfo = new PageInfo<>(orderMapper.findAll());在需要執(zhí)行查詢之前,這是分頁(yè)數(shù)據(jù)(curPage&pageSize)。會(huì)返回一個(gè)PageInfo對(duì)象,包含了分頁(yè)查詢的所以信息數(shù)據(jù),如下:

對(duì)應(yīng)到查詢頁(yè)面(基本類同):

分頁(yè)插件非常順心,寫兩行代碼,就幫我們搞定了十幾個(gè)計(jì)算變量,大大提高咱們的開發(fā)效率呀。

這里分享目前持久層框架的發(fā)展前景:

著名開發(fā)者Josh Long(龍之春)在2019年在Twitter上發(fā)起了一個(gè)關(guān)注持久層框架的投票。如下

投票結(jié)果顯示,有57%的人更偏向于JPA,而MyBatis的支持者則只有10%??吹竭@里是不是心里涼涼,為啥我們?cè)诿嬖嚨臅r(shí)候,更多的是要會(huì)MyBatis,而不是JPA呢?需要注意的是這個(gè)投票是在國(guó)外進(jìn)行,而國(guó)人參與則需要翻墻。因此這個(gè)統(tǒng)計(jì)數(shù)據(jù)只可以說是國(guó)外目前的發(fā)展趨勢(shì),而國(guó)內(nèi)仍有大量的系統(tǒng)在使用MyBatis,在未來幾年MyBatis在國(guó)內(nèi)的地位還是穩(wěn)定的,但是就發(fā)展趨勢(shì)來看,應(yīng)該需要向過來看齊,就是JPA。

擴(kuò)展面試:

面試官問你會(huì)不會(huì)JPA,你說你只會(huì)MyBatis,面試官會(huì)覺得你對(duì)前沿技術(shù)、技術(shù)發(fā)展趨勢(shì)不敏感,感覺你只是停留在使用層面上。
面試官問你會(huì)不會(huì)MyBatis,你說你只會(huì)JPA,面試官會(huì)覺得你對(duì)當(dāng)前國(guó)內(nèi)的形勢(shì)不了解,甚至?xí)岩赡愕拈_發(fā)經(jīng)驗(yàn)。
所以本人認(rèn)為的回答應(yīng)該是:在過去開發(fā)的項(xiàng)目中用的都是MyBatis,但是就我對(duì)持久層框架的認(rèn)識(shí)和了解來看,我覺得未來的發(fā)展趨勢(shì)應(yīng)該是JPA(嗶哩吧哩的說一下JPA的好處),就目前spring家族的新生兒子Spring-data-JPA,在不斷的茁壯成長(zhǎng),也可以看出點(diǎn)發(fā)展方向。
如果覺得有用

可以關(guān)注【思與冉】微信公眾號(hào),一個(gè)不只有詩(shī)和遠(yuǎn)方,還有生活的公眾號(hào)。

可以關(guān)注【思冉】本站創(chuàng)作號(hào),一個(gè)不只有詩(shī)和遠(yuǎn)方,還有生活的創(chuàng)作號(hào)。

關(guān)鍵詞:

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉