Java EE(Spring+Spring MVC+MyBatis)從入門到精通企業級應用開發教程——1初識MyBatis框架

1、MyBatis工作原理

MyBatis操作數據庫流程分為8個步驟,具體介紹如下:

(1)MyBatis讀取核心配置文件mybatis-config.xml

mybatis-config.xml核心配置文件主要配置了MyBatis的運行環境等信息。

(2)加載映射文件Mapper.xml

Mapper.xml文件即SQL映射文件,該文件配置操作數據庫的SQL語句,需要在mybatis-config.xml中加載才能執行。mybatis-config.xml可以加載多個映射文件,每個映射文件對應數據庫中的一張表。

(3)構造會話工廠

通過MyBatis的環境等配置信息構建會話工廠SqlSessionFactory,用于創建SqlSession。

(4)創建會話對象

由會話工廠SqlSessionFactory創建SqlSession對象,該對象中包含了執行SQL語句的所有方法。

(5)創建執行器

會話對象本身不能直接操作數據庫,MyBatis底層定義了一個Executor接口用于操作數據庫,執行器會根據SqlSession傳遞的參數動態的生成需要執行的SQL語句,同時負責查詢緩存地維護。

(6)封裝SQL信息

? SqlSession內部通過執行器Executor操作數據庫,執行器將待處理的SQL信息封裝到MappedStatement對象中,MappedStatement對象中存儲了要映射的SQL語句的id、參數等。Mapper.xml文件中一個SQL語句對應一個MappedStatement對象,SQL語句的id即是MappedStatement的id。Executor執行器會在執行SQL語句之前,通過MappedStatement對象將輸入的參數映射到SQL語句中。

(7)操作數據庫

根據動態生成的SQL操作數據庫。

(8)輸出結果映射

執行SQL語句之后,通過MappedStatement對象將輸出結果映射至Java對象中

?

2、初識框架

2.1框架概述

? 軟件框架是一種通用的、可復用的軟件環境,它提供特定的功能,助力軟件應用、產品和解決方案的開發工作。軟件框架包含支撐程序、編譯器、代碼、庫、工具集和API,它把這些部件匯集在一起,以支持項目或系統的開發。(“框架”Framework一詞最早出現在建筑領域,是指建造房屋前期所構建的建筑骨架。)

2.2框架優勢(相比于JSP+Servlet技術進行軟件開發,使用框架有以下優勢)

(1)提升開發效率

(2)提高代碼規范性和可維護性

(3)提高軟件性能

2.3當前主流框架

Spring框架、Spring MVC框架、MyBatis框架、Spring Boot框架、Spring Cloud框架

(1,Spring框架

Spring框架是一個開源框架,是為了解決企業應用程序開發復雜這一難題而創建的,其主要優勢之一就是分層架構。同時,Spring之所以與Struts、Hibernate等單層框架不同,是因為Spring致力于提供一個以統一的、高效的方式構造整個應用,并且可以將單層框架組合在一起建立一個連貫的體系。Spring提供了更完美的開發環境,可以為POJO(Plain Ordinary Java Object,普通Java對象)提供企業級的服務。

(2,Spring MVC框架

Spring MVC是Spring提供的一個基于MVC設計模式的Web開發框架,是Spring家族中應用于Web應用的一個模塊,可以將它理解為Servlet。在MVC模式中,Spring MVC作為控制器(Controller)用于實現模型與視圖的數據交互,是結構非常清晰的JSP Model2實現,即典型的MVC框架。

Spring MVC框架采用松耦合、可插拔的組合結構,具有出色的可配置性,與其他的MVC框架相比,Spring MVC具有更強的擴展性和靈活性。此外,Spring MVC本身就是Spring家族的一部分,可以與Spring框架無縫集成,因此,Spring MVC在互聯網開發中應用得越來越廣泛。

(3,MyBatis框架

MyBatis原本是Apache的一個開源項目iBatis,2010年這個項目由Apache Software Foundation遷移到了Google Code,并改名為MyBatis,2013年11月MyBatis又被遷移到GitHub。MyBatis是一個優秀的持久層框架,它可以在實體類和SQL語句之間建立映射關系,是一種半自動化的ORM(Object Relational Mapping,對象關系映射)實現。MyBatis封裝性要低于Hibernate,但它性能優越、簡單易學,在互聯網應用的開發中被廣泛使用。

(4,Spring Boot框架

Spring Boot框架是Pivotal團隊基于Spring開發的全新框架,其設計初衷是為了簡化Spring的配置,使用戶能夠構建獨立運行的程序,提高開發效率。Spring Boot框架本身并不提供Spring框架的核心特性及擴展功能,它只是用于快速、敏捷地開發新一代基于Spring框架的應用,同時它還集成了大量的第三方類庫(如Jackson、JDBC、Redis等),使用戶只需少量配置就能完成相應功能。

(5,Spring Cloud框架

Spring Cloud是一系列

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904994.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904994.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904994.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【許可證】Open Source Licenses

長期更新 擴展:shield.io裝飾 開源許可證(Open Source Licenses)有很多種,每種都有不同的授權和限制,適用于不同目的。 默認的ISC🟰MIT License是否可商用是否要求開源衍生項目是否必須署名是否有專利授權…

ZooKeeper工作機制與應用場景

目錄 1.1、概述1.2、選舉機制1.2.1、選舉觸發條件1.2.2、選舉規則1.2.3、選舉過程詳解 1.3、數據同步機制1.3.1、正常同步1.3.2、宕機同步 1.4、客戶端常用命令1.5、應用場景1.5.1、配置管理1.5.2、命令服務1.5.3、分布式鎖服務1.5.4、集群管理1.5.5、分布式ID1.5.6、分布式協調…

前端面經-VUE3篇(四)--pinia篇-基本使用、store、state、getter、action、插件

一、基本使用 1、什么是 Pinia? Pinia 是 Vue.js 的官方狀態管理庫,是 Vuex 的“升級版”。它專為 Vue 3 和 Composition API 設計,用于管理多個組件之間共享的數據(也叫“全局狀態”)。 2、為什么需要狀態管理庫&a…

數據結構之圖的遍歷

圖的遍歷 圖的遍歷目的是訪問圖的每一個頂點恰好一次,,同時訪問圖中每條邊恰好一 次。 對于無向圖,常見的遍歷方式有深度優先遍歷(Depth-First Search, DFS) 和廣度優先遍歷(Breadth-First Search, BFS)。…

Ubuntu 第11章 網絡管理_常用的網絡配置命令

為了管理網絡,Linux提供了許多非常有用的網絡管理命令。利用這些命令,一方面可以有效地管理網絡,另一方面出現網絡故障時,可以快速進行診斷。本節將對Ubuntu提供的網絡管理命令進行介紹。 11.2.1 ifconfig命令 關于ifconfig命令&…

Qt解決自定義窗口樣式不生效問題

方法一: this->setAttribute(Qt::WA_StyledBackground, true); 方法二: 將類繼承QWidget 改成繼承 QFrame class MyWidget : public QFrame {} 方法三:重新實現QWidget的paintEvent函數時,使用QStylePainter繪制。 void p…

HNUST湖南科技大學-軟件測試期中復習考點(保命版)

使用說明:本復習考點僅用于及格保命。軟件測試和其他專業課不太一樣,記憶的太多了,只能說考試的時候,想到啥就寫啥,多寫一點!多寫一點!多寫一點!(重要事情說三遍&#xf…

ES6 知識點整理

一、變量聲明:var、let、const 的區別 作用域 var:函數作用域(函數內有效)。let/const:塊級作用域({} 內有效,如 if、for)。 變量提升 var 會提升變量到作用域頂部(值為…

分布式爬蟲去重:Python + Redis實現高效URL去重

1. 引言 在互聯網數據采集(爬蟲)過程中,URL去重是一個關鍵問題。如果不對URL進行去重,爬蟲可能會重復抓取相同頁面,導致資源浪費、數據冗余,甚至觸發目標網站的反爬機制。 對于單機爬蟲,可以使…

C# WPF 顏色拾取器

x:Name=Color Picker 語言:C# WPF 下載:https://download.csdn.net/download/polloo2012/90780640 主界面 顏色庫 關于我們 顏色拾取器是一種能夠幫助用戶獲取顏色信息,并進行顏色選擇、識別和調整的工具,以下將從其常見類型、使用場景及部分軟件工具這幾個維度展開介紹…

Git 使用的全流程以及SourceTree工具的使用操作和忽略文件的配置

1. 安裝 Git 要使用 Git,首先得在你的系統上安裝它。你可以按照不同操作系統的安裝指南來操作: Windows:訪問 Git 官方下載頁面,下載安裝程序并運行。 macOS:可以使用 Homebrew 來安裝,命令為 brew inst…

《深入理解Linux網絡》筆記

《深入理解Linux網絡》筆記 前言參考 前言 前段時間看了《深入理解Linux網絡》這本書,雖然有些地方有以代碼充篇幅的嫌疑,但總體來說還是值得一看的。在這里簡單記錄一下筆記,記錄下對網絡新的理解。 內核是如果接受網絡包的? 如…

數倉-可累計,半累加,不可累加指標,是什么,舉例說明及解決方案

目錄 1. 可累計指標定義:舉例:解決方案: 2. 半累加指標定義:舉例:解決方案: 3. 不可累加指標定義:舉例:解決方案: 4. 總結對比5. 實際場景中的注意事項 這是數據倉庫設計…

NestJS 的核心構建塊有哪些?請簡要描述它們的作用(例如,Modules, Controllers, Providers)

NestJS 核心構建塊解析(Modules、Controllers、Providers) NestJS 是一個基于 TypeScript 的漸進式 Node.js 框架,核心設計借鑒了 Angular 的模塊化思想。下面從實際開發角度解析它的三大核心構建塊,并附代碼示例和避坑指南。 一…

vue2 上傳pdf,拖拽蓋章,下載圖片

效果圖片&#xff1a; 不多廢話上代碼&#xff1a; <template><div class"pdf-stamp" onbeforecopyreturn false onselectdocument.selection.empty() ondragstartreturn false onselectstart return false ><div class"scroll-box" scro…

理性地傾聽與表達:檢索算法的語言學改進

論文標題 Rational Retrieval Acts: Leveraging Pragmatic Reasoning to Improve Sparse Retrieval 論文地址 https://arxiv.org/pdf/2505.03676 代碼地址 https://github.com/arthur-75/Rational-Retrieval-Acts 作者背景 巴黎薩克雷大學&#xff0c;索邦大學&#xff…

MySQL及線程關于鎖的面試題

目錄 1.了解過 MySQL 死鎖問題嗎&#xff1f; 2.什么是線程死鎖&#xff1f;死鎖相關面試題 2.1 什么是死鎖&#xff1a; 2.2 形成死鎖的四個必要條件是什么&#xff1f; 2.3 如何避免線程死鎖&#xff1f; 3. MySQL 怎么排查死鎖問題&#xff1f; 4.Java線上死鎖問題如…

【Reality Capture 】Reality Capture1.5中文版安裝教程(附安裝包下載)

文章目錄 一、Reality Capture1.5中文版安裝教程二、拷貝中文補丁三、Reality Capture1.5中文版下載地址一、Reality Capture1.5中文版安裝教程 1. Reality Capture v1.4.0漢化版安裝包下載并解壓 2. 運行EpicInstaller-15.17.1-4a91a118786f4c2aa3c0093b23f83863.msi 3. 更改…

SVG數據可視化設計(AI)完全工作流解讀|計育韜

AI 的 SVG 創作極限在哪里&#xff1f;絕不是那些初級的流程圖生成和粗糙的商業模型設計。以下是由我們 JZ Creative Studio 通過 Claude 和 Deepseek 開展的專業級 SVG Data Visualization 創作&#xff0c;應廣大讀者強烈要求&#xff0c;專程直播講授了一期 AI 工作流分享。…

not a genuine st device abort connection的問題

1.魔法棒里面電機Settings 2.然后在Other里面把Enabled的鉤子去掉