成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

MyBatis-Plus初步

娣辯孩 / 1856人閱讀

摘要:是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在應(yīng)用方面,是最好的,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)用軟件。是一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。

本章主要是對(duì)MyBatis-Plus的初步介紹,包括一些背景知識(shí)、環(huán)境搭建、初步使用等知識(shí)和例子。
對(duì)于背景知識(shí),主要包含對(duì)MyBatis-Plus的特性介紹、為什么使用MyBatis-Plus、MyBatis與MyBatis-Plus的區(qū)別;
對(duì)于環(huán)境搭建,主要包括JDK的安裝、Eclispe的安裝、MySQL的安裝等;
對(duì)于初步使用,主要是以Maven項(xiàng)目為主的示例說明;**

1.1 MyBatis-Plus簡(jiǎn)介

MyBatis-Plus(簡(jiǎn)稱 MP)是一個(gè) MyBatis 的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開發(fā)、提高效率而生。

MyBatis-Plus所期望的愿景是:
我們的愿景是成為 MyBatis 最好的搭檔,就像 魂斗羅 中的 1P、2P,基友搭配,效率翻倍。

如圖所示:

MyBatis-Plus的代碼托管地址如下所示:

碼云: https://gitee.com/baomidou/my...

Github: https://github.com/baomidou/m...

1.1.1 MyBatis-Plus特性

特性

? 無(wú)侵入:只做增強(qiáng)不做改變,引入它不會(huì)對(duì)現(xiàn)有工程產(chǎn)生影響,如絲般順滑

? 損耗?。?jiǎn)?dòng)即會(huì)自動(dòng)注入基本 CURD,性能基本無(wú)損耗,直接面向?qū)ο蟛僮?/p>

? 強(qiáng)大的 CRUD 操作:內(nèi)置通用 Mapper、通用 Service,僅僅通過少量配置即可實(shí)現(xiàn)單表大部分 CRUD 操作,更有強(qiáng)大的條件構(gòu)造器,滿足各類使用需求

? 支持 Lambda 形式調(diào)用:通過 Lambda 表達(dá)式,方便的編寫各類查詢條件,無(wú)需再擔(dān)心字段寫錯(cuò)

? 支持多種數(shù)據(jù)庫(kù):支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多種數(shù)據(jù)庫(kù)

? 支持主鍵自動(dòng)生成:支持多達(dá) 4 種主鍵策略(內(nèi)含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問題

? 支持 XML 熱加載:Mapper 對(duì)應(yīng)的 XML 支持熱加載,對(duì)于簡(jiǎn)單的 CRUD 操作,甚至可以無(wú) XML 啟動(dòng)

? 支持 ActiveRecord 模式:支持 ActiveRecord 形式調(diào)用,實(shí)體類只需繼承 Model 類即可進(jìn)行強(qiáng)大的 CRUD 操作

? 支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere )

? 支持關(guān)鍵詞自動(dòng)轉(zhuǎn)義:支持?jǐn)?shù)據(jù)庫(kù)關(guān)鍵詞(order、key......)自動(dòng)轉(zhuǎn)義,還可自定義關(guān)鍵詞

? 內(nèi)置代碼生成器:采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來(lái)使用

? 內(nèi)置分頁(yè)插件:基于 MyBatis 物理分頁(yè),開發(fā)者無(wú)需關(guān)心具體操作,配置好插件之后,寫分頁(yè)等同于普通 List 查詢

? 內(nèi)置性能分析插件:可輸出 Sql 語(yǔ)句以及其執(zhí)行時(shí)間,建議開發(fā)測(cè)試時(shí)啟用該功能,能快速揪出慢查詢

? 內(nèi)置全局?jǐn)r截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規(guī)則,預(yù)防誤操作

? 內(nèi)置 Sql 注入剝離器:支持 Sql 注入剝離,有效預(yù)防 Sql 注入攻擊

1.1.2 為什么要使用MyBatis-Plus

關(guān)于為什么要使用MyBatis-Plus這個(gè)問題,我結(jié)合個(gè)人的使用經(jīng)驗(yàn),從代碼生成器、易學(xué)性、應(yīng)用性、安全性角度分析,歸納如下幾個(gè)方面?

(1) MyBatis的代碼生成器生成的一大堆XML或者是實(shí)體及其Dao太過繁瑣,而MyBatis-Plus 的代碼生成器,生成的代碼從Entity到Dao、Service及其實(shí)現(xiàn)類還有Controller包含XML,可以說是一整套生成,生成的代碼十分簡(jiǎn)潔實(shí)用;

(2) MyBatis-Plus原理就是MyBatis,只不過該開源作者對(duì)其做了強(qiáng)化,因此絲毫不影響原理怎么使用MyBatis,只不過對(duì)于實(shí)體而言,需要加一定的注解,注解也是非常易懂的;

(3) MyBatis-Plus在不少開源項(xiàng)目中都很流行,比如guns、renren-security等等,同時(shí)也有不少公司也在用,
如圖所示:

(4) 至于安全方面,之前我們的公司的第一個(gè)項(xiàng)目使用的是MyBatis,后來(lái)另外兩個(gè)項(xiàng)目接連使用MyBatis-Plus作為持久層,目前在線上暫未出現(xiàn)問題,即便出現(xiàn)問題,也不是因?yàn)镸yBatis-Plus,問題一般通常是業(yè)務(wù)方面的bug之類的;

1.1.3 MyBatis-Plus與MyBatis的區(qū)別

相同點(diǎn):

它們都是用于持久層開發(fā)(DAO層,又稱數(shù)據(jù)訪問層),一般都用于常用的SSM框架或者是SpringBoot構(gòu)建微服務(wù),關(guān)于SSM框架實(shí)戰(zhàn)和SpringBoot集成構(gòu)建微服務(wù),后面會(huì)講到的。

不同點(diǎn):

(1) CRUD差異,MyBatis對(duì)于CRUD沒有通用的一套,一般還得自己寫SQL,復(fù)制過來(lái),復(fù)制過去,而MyBatis-Plus對(duì)于CRUD有通用的一套。通用的一套,在這里指的是DAO、Service等;

(2) 對(duì)于實(shí)體與表及其字段定義不同,MyBatis對(duì)于實(shí)體與在字段,通過XML文件方式,而My Batis-Plus通過@TableName讓實(shí)體與表關(guān)聯(lián),通過@TableField與表字段關(guān)聯(lián),如果是XML文件方式的話,實(shí)體與字段映射,主要針對(duì)自定義SQL;

(3) 插件成熟和豐富程度,MyBatis歷史相對(duì)比MyBatis-Plus要久,插件豐富、成熟且強(qiáng)大,不是MyBatis-Plus所能比擬的,但是MyBatis-Plus也一直不斷的更新強(qiáng)化自己,不過差距肯定是有的;

(4) 通用性不同,MyBatis是外國(guó)人開發(fā)的,國(guó)內(nèi)外皆通用,而MyBatis-Plus是由國(guó)內(nèi)人士自發(fā)組織的開源,目前主要通用于國(guó)內(nèi);

1.2 環(huán)境準(zhǔn)備

開發(fā)過程中,環(huán)境準(zhǔn)備是必須的。環(huán)境準(zhǔn)備包含這么幾個(gè)指標(biāo)?

第一、 運(yùn)行環(huán)境;

第二、 使用工具;

從運(yùn)行環(huán)境的角度看,示例如下:

例1:使用Java作為開發(fā)的語(yǔ)言就需要安裝對(duì)應(yīng)的JDK;

例2:要使用webpack打包需要Node.JS的環(huán)境;

從使用工具的角度看,示例如下:

例1:使用IDEA或者Eclipse作為Java的開發(fā)工具;

例2:例如Maven作為項(xiàng)目構(gòu)建工具;

本節(jié)主要圍繞JDK的安裝、Eclipse的安裝、MySQL的安裝、Maven的安裝等方面來(lái)講解環(huán)境準(zhǔn)備,這些準(zhǔn)備主要為了后續(xù)更好的講解。

1.2.1 JDK的下載

JDK是 Java 語(yǔ)言的軟件開發(fā)工具包,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序。JDK是整個(gè)java開發(fā)的核心,它包含了JAVA的運(yùn)行環(huán)境(JVM+Java系統(tǒng)類庫(kù))和JAVA工具。

JDK的下載地址如下所示:
https://www.oracle.com/techne...

如下圖所示:

一般Windos安裝選擇的exe的安裝方式,先下載后安裝,關(guān)于exe安裝軟件的方式就不多說了。

1.2.2 Eclipse的下載

Eclipse 是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。

Eclipse的下載地址如下:https://www.eclipse.org/downl...

如下圖所示,可以根據(jù)自己的需要安裝不同版本的Eclipse

1.2.3 MySQL的下載

MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件。

MySQL是一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。

MySQL所使用的 SQL 語(yǔ)言是用于訪問數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。

MySQL的下載地址如下所示:
https://dev.mysql.com/downloa...

如下圖所示,這是目前MySQL最新版本5.7

1.2.4 Maven的下載

Maven項(xiàng)目對(duì)象模型(POM) 可以通過一小段描述信息來(lái)管理項(xiàng)目的構(gòu)建,報(bào)告和文檔的項(xiàng)目管理工具軟件。
Maven 除了以程序構(gòu)建能力為特色之外,還提供高級(jí)項(xiàng)目管理工具。由于 Maven 的缺省構(gòu)建規(guī)則有較高的可重用性,所以常常用兩三行 Maven 構(gòu)建腳本就可以構(gòu)建簡(jiǎn)單的項(xiàng)目。由于 Maven 的面向項(xiàng)目的方法,許多 Apache Jakarta 項(xiàng)目發(fā)文時(shí)使用 Maven,而且公司項(xiàng)目采用 Maven 的比例在持續(xù)增長(zhǎng)。

Maven的下載地址為: http://maven.apache.org/downl...

如下圖所示:

1.3 簡(jiǎn)單使用

經(jīng)過前面的MyBatis-Plus簡(jiǎn)介,相信你對(duì)MyBatis-Plus有一個(gè)大致的了解。
對(duì)應(yīng)的環(huán)境準(zhǔn)備小節(jié),我假定你環(huán)境已經(jīng)全部安裝好了,對(duì)應(yīng)Java開發(fā)者而言搭建環(huán)境是必不可少的技能。無(wú)論是在校就讀的大學(xué)生、還是出來(lái)工作后的職業(yè)者,都是基礎(chǔ)當(dāng)中的基礎(chǔ)。下面我們進(jìn)入簡(jiǎn)單實(shí)用這一環(huán)節(jié)。

項(xiàng)目結(jié)構(gòu)如圖所示:

1.3.1 導(dǎo)入Maven依賴

關(guān)于依賴的下載地址,可以去Maven的官方倉(cāng)庫(kù)中下載:
https://mvnrepository.com/tag...

如圖所示:

1.3.2 準(zhǔn)備SQL腳本

1.3.3 建立實(shí)體

1.3.4 編寫DAO

1.3.5 編寫XML文件和對(duì)應(yīng)的配置文件

UserDao.xml

mybatis-config.xml

1.3.6 編寫工具類

1.3.7 測(cè)試

最終的運(yùn)行結(jié)果是通過Junit測(cè)試沒有報(bào)錯(cuò),輸出如下:

說明:
其實(shí)這個(gè)例子看一看,可以發(fā)現(xiàn)與MyBatis的差別并不大,可以說就是MyBatis,不過區(qū)別還是有的,比如maven依賴并沒有包含MyBatis,

但是實(shí)際上它卻具有與MyBatis一樣的功能,所以從這個(gè)角度來(lái)看,MyBatis-Plus就是MyBatis,因?yàn)樗鼡碛蠱yBatis的所有功能,但從另外的角度來(lái)看,它們還是有一定的差異,這個(gè)差異造成了MyBatis-Plus比MyBatis要強(qiáng)大的多。

1.4 小結(jié)

這一章主要講的就是MyBatis-Plus的相關(guān)背景知識(shí)和環(huán)境準(zhǔn)備及其簡(jiǎn)單示例,通過這些理論+對(duì)應(yīng)的例子能夠讓你對(duì)MyBatis-Plus有一個(gè)初步的了解。

關(guān)于本章示例工程源碼下載地址為:
https://github.com/developers...

如需轉(zhuǎn)載請(qǐng)注明原創(chuàng)地址,謝謝合作。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72697.html

相關(guān)文章

  • MyBatis集成Spring

    摘要:各方面有各種常見的良好示例,包括日志記錄,聲明式事務(wù),安全性,緩存等。聲明式事務(wù)管理這意味著你從業(yè)務(wù)代碼中分離事務(wù)管理。但作為一種橫切關(guān)注點(diǎn),聲明式事務(wù)管理可以使用方法進(jìn)行模塊化。支持使用框架的聲明式事務(wù)管理。 本章主要內(nèi)容包括Spring簡(jiǎn)介、Spring的兩大特性(IOC和AOP)、事務(wù)MyBatis集成Spring等。也許有讀者會(huì)疑惑,明明是MyBatis-Plus實(shí)戰(zhàn),怎么還講...

    ckllj 評(píng)論0 收藏0
  • Spring Boot 2.x(五):整合Mybatis-Plus

    摘要:的作用可以看到,它給我們提供了一些核心的功能代碼生成器和現(xiàn)成的接口以及可以結(jié)合的條件構(gòu)造器使我們的代碼變得足夠優(yōu)雅,分頁(yè)的使用也是相當(dāng)?shù)姆奖?,以及提供了不同的主鍵生成策略。 簡(jiǎn)介 Mybatis-Plus是在Mybatis的基礎(chǔ)上,國(guó)人開發(fā)的一款持久層框架。 showImg(https://segmentfault.com/img/bVbvFk4?w=2022&h=862); 并且榮獲...

    AaronYuan 評(píng)論0 收藏0
  • springboot+mybatis+mybatis-plus分頁(yè)查詢(簡(jiǎn)單實(shí)現(xiàn))

    摘要:讀取控制臺(tái)內(nèi)容請(qǐng)輸入請(qǐng)輸入正確的代碼生成器全局配置實(shí)體屬性注解數(shù)據(jù)源配置包配置這里有個(gè)模塊名的配置,可以注釋掉不用。 最近在研究mybatis,然后就去找簡(jiǎn)化mybatis開發(fā)的工具,發(fā)現(xiàn)就有通用Mapper和mybatis-plus兩個(gè)比較好的可是使用,可是經(jīng)過對(duì)比發(fā)現(xiàn)還是mybatis-plus比較好,個(gè)人覺得,勿噴。。。 集成還是非常簡(jiǎn)單的,然后就在研究怎么分頁(yè),開始研究通用ma...

    Pocher 評(píng)論0 收藏0
  • spring-boot 整合mybatis-plus 組成后臺(tái)開發(fā)基本框架

    摘要:一直想搞一套后臺(tái)基本開發(fā)框架出來(lái),無(wú)奈太忙其實(shí)太懶,最近受到兩位大佬的啟發(fā),就改動(dòng)了一下大佬做好的東西。更新簡(jiǎn)單整合使用項(xiàng)目目錄修復(fù)修改模板文件的包名問題,之后只在包里文件中的與即可地址 一直想搞一套后臺(tái)基本開發(fā)框架出來(lái),無(wú)奈太忙(其實(shí)太懶),最近受到兩位大佬的啟發(fā),就改動(dòng)了一下大佬做好的東西。初始版本:https://github.com/lihengming... showImg(...

    abson 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<