摘要:是最流行的關系型數據庫管理系統之一,在應用方面,是最好的,關系數據庫管理系統應用軟件。是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
本章主要是對MyBatis-Plus的初步介紹,包括一些背景知識、環境搭建、初步使用等知識和例子。
對于背景知識,主要包含對MyBatis-Plus的特性介紹、為什么使用MyBatis-Plus、MyBatis與MyBatis-Plus的區別;
對于環境搭建,主要包括JDK的安裝、Eclispe的安裝、MySQL的安裝等;
對于初步使用,主要是以Maven項目為主的示例說明;**
MyBatis-Plus(簡稱 MP)是一個 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。
MyBatis-Plus所期望的愿景是:
我們的愿景是成為 MyBatis 最好的搭檔,就像 魂斗羅 中的 1P、2P,基友搭配,效率翻倍。
如圖所示:
MyBatis-Plus的代碼托管地址如下所示:
碼云: https://gitee.com/baomidou/my...
Github: https://github.com/baomidou/m...
1.1.1 MyBatis-Plus特性特性
? 無侵入:只做增強不做改變,引入它不會對現有工程產生影響,如絲般順滑
? 損耗小:啟動即會自動注入基本 CURD,性能基本無損耗,直接面向對象操作
? 強大的 CRUD 操作:內置通用 Mapper、通用 Service,僅僅通過少量配置即可實現單表大部分 CRUD 操作,更有強大的條件構造器,滿足各類使用需求
? 支持 Lambda 形式調用:通過 Lambda 表達式,方便的編寫各類查詢條件,無需再擔心字段寫錯
? 支持多種數據庫:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多種數據庫
? 支持主鍵自動生成:支持多達 4 種主鍵策略(內含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問題
? 支持 XML 熱加載:Mapper 對應的 XML 支持熱加載,對于簡單的 CRUD 操作,甚至可以無 XML 啟動
? 支持 ActiveRecord 模式:支持 ActiveRecord 形式調用,實體類只需繼承 Model 類即可進行強大的 CRUD 操作
? 支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere )
? 支持關鍵詞自動轉義:支持數據庫關鍵詞(order、key......)自動轉義,還可自定義關鍵詞
? 內置代碼生成器:采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來使用
? 內置分頁插件:基于 MyBatis 物理分頁,開發者無需關心具體操作,配置好插件之后,寫分頁等同于普通 List 查詢
? 內置性能分析插件:可輸出 Sql 語句以及其執行時間,建議開發測試時啟用該功能,能快速揪出慢查詢
? 內置全局攔截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規則,預防誤操作
? 內置 Sql 注入剝離器:支持 Sql 注入剝離,有效預防 Sql 注入攻擊
1.1.2 為什么要使用MyBatis-Plus關于為什么要使用MyBatis-Plus這個問題,我結合個人的使用經驗,從代碼生成器、易學性、應用性、安全性角度分析,歸納如下幾個方面?
(1) MyBatis的代碼生成器生成的一大堆XML或者是實體及其Dao太過繁瑣,而MyBatis-Plus 的代碼生成器,生成的代碼從Entity到Dao、Service及其實現類還有Controller包含XML,可以說是一整套生成,生成的代碼十分簡潔實用;
(2) MyBatis-Plus原理就是MyBatis,只不過該開源作者對其做了強化,因此絲毫不影響原理怎么使用MyBatis,只不過對于實體而言,需要加一定的注解,注解也是非常易懂的;
(3) MyBatis-Plus在不少開源項目中都很流行,比如guns、renren-security等等,同時也有不少公司也在用,
如圖所示:
(4) 至于安全方面,之前我們的公司的第一個項目使用的是MyBatis,后來另外兩個項目接連使用MyBatis-Plus作為持久層,目前在線上暫未出現問題,即便出現問題,也不是因為MyBatis-Plus,問題一般通常是業務方面的bug之類的;
1.1.3 MyBatis-Plus與MyBatis的區別相同點:
它們都是用于持久層開發(DAO層,又稱數據訪問層),一般都用于常用的SSM框架或者是SpringBoot構建微服務,關于SSM框架實戰和SpringBoot集成構建微服務,后面會講到的。
不同點:
(1) CRUD差異,MyBatis對于CRUD沒有通用的一套,一般還得自己寫SQL,復制過來,復制過去,而MyBatis-Plus對于CRUD有通用的一套。通用的一套,在這里指的是DAO、Service等;
(2) 對于實體與表及其字段定義不同,MyBatis對于實體與在字段,通過XML文件方式,而My Batis-Plus通過@TableName讓實體與表關聯,通過@TableField與表字段關聯,如果是XML文件方式的話,實體與字段映射,主要針對自定義SQL;
(3) 插件成熟和豐富程度,MyBatis歷史相對比MyBatis-Plus要久,插件豐富、成熟且強大,不是MyBatis-Plus所能比擬的,但是MyBatis-Plus也一直不斷的更新強化自己,不過差距肯定是有的;
(4) 通用性不同,MyBatis是外國人開發的,國內外皆通用,而MyBatis-Plus是由國內人士自發組織的開源,目前主要通用于國內;
1.2 環境準備開發過程中,環境準備是必須的。環境準備包含這么幾個指標?
第一、 運行環境;
第二、 使用工具;
從運行環境的角度看,示例如下:
例1:使用Java作為開發的語言就需要安裝對應的JDK;
例2:要使用webpack打包需要Node.JS的環境;
從使用工具的角度看,示例如下:
例1:使用IDEA或者Eclipse作為Java的開發工具;
例2:例如Maven作為項目構建工具;
本節主要圍繞JDK的安裝、Eclipse的安裝、MySQL的安裝、Maven的安裝等方面來講解環境準備,這些準備主要為了后續更好的講解。
1.2.1 JDK的下載JDK是 Java 語言的軟件開發工具包,主要用于移動設備、嵌入式設備上的java應用程序。JDK是整個java開發的核心,它包含了JAVA的運行環境(JVM+Java系統類庫)和JAVA工具。
JDK的下載地址如下所示:
https://www.oracle.com/techne...
如下圖所示:
一般Windos安裝選擇的exe的安裝方式,先下載后安裝,關于exe安裝軟件的方式就不多說了。
1.2.2 Eclipse的下載Eclipse 是一個開放源代碼的、基于Java的可擴展開發平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發環境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發工具(Java Development Kit,JDK)。
Eclipse的下載地址如下:https://www.eclipse.org/downl...
如下圖所示,可以根據自己的需要安裝不同版本的Eclipse
1.2.3 MySQL的下載MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬于 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件。
MySQL是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語言是用于訪問數據庫的最常用標準化語言。MySQL 軟件采用了雙授權政策,分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站數據庫。
MySQL的下載地址如下所示:
https://dev.mysql.com/downloa...
如下圖所示,這是目前MySQL最新版本5.7
1.2.4 Maven的下載Maven項目對象模型(POM) 可以通過一小段描述信息來管理項目的構建,報告和文檔的項目管理工具軟件。
Maven 除了以程序構建能力為特色之外,還提供高級項目管理工具。由于 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目。由于 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目采用 Maven 的比例在持續增長。
Maven的下載地址為: http://maven.apache.org/downl...
如下圖所示:
1.3 簡單使用經過前面的MyBatis-Plus簡介,相信你對MyBatis-Plus有一個大致的了解。
對應的環境準備小節,我假定你環境已經全部安裝好了,對應Java開發者而言搭建環境是必不可少的技能。無論是在校就讀的大學生、還是出來工作后的職業者,都是基礎當中的基礎。下面我們進入簡單實用這一環節。
項目結構如圖所示:
1.3.1 導入Maven依賴關于依賴的下載地址,可以去Maven的官方倉庫中下載:
https://mvnrepository.com/tag...
如圖所示:
1.3.2 準備SQL腳本 1.3.3 建立實體 1.3.4 編寫DAO 1.3.5 編寫XML文件和對應的配置文件UserDao.xml
mybatis-config.xml
1.3.6 編寫工具類 1.3.7 測試最終的運行結果是通過Junit測試沒有報錯,輸出如下:
說明:
其實這個例子看一看,可以發現與MyBatis的差別并不大,可以說就是MyBatis,不過區別還是有的,比如maven依賴并沒有包含MyBatis,
但是實際上它卻具有與MyBatis一樣的功能,所以從這個角度來看,MyBatis-Plus就是MyBatis,因為它擁有MyBatis的所有功能,但從另外的角度來看,它們還是有一定的差異,這個差異造成了MyBatis-Plus比MyBatis要強大的多。
1.4 小結這一章主要講的就是MyBatis-Plus的相關背景知識和環境準備及其簡單示例,通過這些理論+對應的例子能夠讓你對MyBatis-Plus有一個初步的了解。
關于本章示例工程源碼下載地址為:
https://github.com/developers...
如需轉載請注明原創地址,謝謝合作。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72697.html
摘要:各方面有各種常見的良好示例,包括日志記錄,聲明式事務,安全性,緩存等。聲明式事務管理這意味著你從業務代碼中分離事務管理。但作為一種橫切關注點,聲明式事務管理可以使用方法進行模塊化。支持使用框架的聲明式事務管理。 本章主要內容包括Spring簡介、Spring的兩大特性(IOC和AOP)、事務MyBatis集成Spring等。也許有讀者會疑惑,明明是MyBatis-Plus實戰,怎么還講...
摘要:的作用可以看到,它給我們提供了一些核心的功能代碼生成器和現成的接口以及可以結合的條件構造器使我們的代碼變得足夠優雅,分頁的使用也是相當的方便,以及提供了不同的主鍵生成策略。 簡介 Mybatis-Plus是在Mybatis的基礎上,國人開發的一款持久層框架。 showImg(https://segmentfault.com/img/bVbvFk4?w=2022&h=862); 并且榮獲...
摘要:讀取控制臺內容請輸入請輸入正確的代碼生成器全局配置實體屬性注解數據源配置包配置這里有個模塊名的配置,可以注釋掉不用。 最近在研究mybatis,然后就去找簡化mybatis開發的工具,發現就有通用Mapper和mybatis-plus兩個比較好的可是使用,可是經過對比發現還是mybatis-plus比較好,個人覺得,勿噴。。。 集成還是非常簡單的,然后就在研究怎么分頁,開始研究通用ma...
摘要:一直想搞一套后臺基本開發框架出來,無奈太忙其實太懶,最近受到兩位大佬的啟發,就改動了一下大佬做好的東西。更新簡單整合使用項目目錄修復修改模板文件的包名問題,之后只在包里文件中的與即可地址 一直想搞一套后臺基本開發框架出來,無奈太忙(其實太懶),最近受到兩位大佬的啟發,就改動了一下大佬做好的東西。初始版本:https://github.com/lihengming... showImg(...
閱讀 3652·2021-09-02 15:11
閱讀 4563·2021-08-16 10:47
閱讀 1560·2019-08-29 18:35
閱讀 3030·2019-08-28 17:54
閱讀 2843·2019-08-26 11:37
閱讀 1496·2019-08-23 16:51
閱讀 1799·2019-08-23 14:36
閱讀 1801·2019-08-23 14:21