《Java EE企業(yè)級框架技術及案例實戰(zhàn)-Spring+Spring MVC+MyBatis(微課版)》全套教學課件_第1頁
《Java EE企業(yè)級框架技術及案例實戰(zhàn)-Spring+Spring MVC+MyBatis(微課版)》全套教學課件_第2頁
《Java EE企業(yè)級框架技術及案例實戰(zhàn)-Spring+Spring MVC+MyBatis(微課版)》全套教學課件_第3頁
《Java EE企業(yè)級框架技術及案例實戰(zhàn)-Spring+Spring MVC+MyBatis(微課版)》全套教學課件_第4頁
《Java EE企業(yè)級框架技術及案例實戰(zhàn)-Spring+Spring MVC+MyBatis(微課版)》全套教學課件_第5頁
已閱讀5頁,還剩386頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3JavaEE企業(yè)級框架技術及案例實戰(zhàn)第1章JAVAEE企業(yè)級開發(fā)基礎第2章MyBatis基礎第3章Mybatis核心組件第4章MyBatis關聯(lián)映射第5章Mybatis緩存第6章spring基礎第7章SpringIOC第8章SpringAOP第9章Spring事務管理第10章SpringMVC基礎第11章SpringMVC開發(fā)詳解第12章

深入使用SpringMVC第13章

綜合實踐

企業(yè)辦公管理系統(tǒng)全套可編輯PPT課件

E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3第一章JAVAEE企業(yè)級開發(fā)基礎全套可編輯PPT課件

-了解企業(yè)級應用的概念和特點-掌握Web分層架構的設計思想-理解SSM框架的基本概念和特點010203項目需求背景知識項目介紹經(jīng)典問題強化本章小結0102030405E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項目需求01項目需求01項目經(jīng)理老王:小王,最近公司有一個CRM系統(tǒng)需要開發(fā),目前已經(jīng)進入需求調(diào)研階段了,這個系統(tǒng)需要使用到當前流行的JAVAEE企業(yè)級開發(fā)框架SSM,你趁這段時間工作不是很忙,把這幾個框架系統(tǒng)學習一下吧。程序員小王:王經(jīng)理,什么是CRM系統(tǒng)呢?這個名詞我是第一次聽說。項目經(jīng)理老王:CRM是客戶關系管理系統(tǒng)的英文簡稱。它是指利用軟件、硬件和網(wǎng)絡技術,為企業(yè)建立一個客戶信息收集、管理、分析、應用的信息系統(tǒng)。系統(tǒng)以客戶數(shù)據(jù)的管理為核心,記錄企業(yè)在市場營銷和銷售過程中與客戶發(fā)生的各種交互行為、各類活動狀態(tài),并提供不同的數(shù)據(jù)模型,為后期的市場分析與決策提供支持。程序員小王:噢,我明白CRM系統(tǒng)是什么了,那么要如何實現(xiàn)這個系統(tǒng)呢?項目經(jīng)理老王:要實現(xiàn)CRM系統(tǒng),需要用到JAVAEE企業(yè)級開發(fā)框架SSM,即Spring、SpringMVC、Mybatis三個框架。它們經(jīng)過了多年的發(fā)展,無論是技術還是社區(qū)都已經(jīng)很成熟了,目前是企業(yè)開發(fā)Web項目的首選。程序員小王:謝謝您的釋疑,在項目正式開始之前,我會先深入了解CRM系統(tǒng)的需求,然后認真學習SSM框架,采取學練結合的方式完成項目的開發(fā)。功能描述01本書將帶領讀者圍繞CRM系統(tǒng)功能的實現(xiàn),以深入淺出地方式掌握SSM框架的原理及應用。以下是本書待實現(xiàn)的系統(tǒng)功能:用戶管理:該模塊允許管理員創(chuàng)建、編輯和刪除系統(tǒng)用戶賬戶。用戶可以有不同的角色和權限,以便限制他們在系統(tǒng)中的訪問和操作范圍。權限管理:該模塊允許管理員定義不同用戶角色的權限級別。例如,某些用戶可以查看客戶信息,而另一些用戶可以編輯或刪除客戶信息。資源權限管理:該模塊擴展了權限管理功能,允許用戶為特定的資源(如客戶、產(chǎn)品)定義權限,以便可以更精細地控制用戶對不同數(shù)據(jù)的訪問權限。日志管理:該模塊可以跟蹤用戶活動和系統(tǒng)事件,記錄用戶的登錄、操作、修改和其它關鍵事件,以便在需要時進行審計和故障排查。產(chǎn)品管理:該模塊允許用戶維護公司的產(chǎn)品信息,包括產(chǎn)品名稱、描述、定價等。這對于銷售人員在創(chuàng)建報價和訂單時非常有用。訂單管理:該模塊用于跟蹤和管理客戶的訂單。包括創(chuàng)建新訂單、編輯訂單、訂單狀態(tài)跟蹤。以上是構建一個CRM系統(tǒng)所需的核心功能,各模塊的實現(xiàn)將在本書的后續(xù)章節(jié)依次給予呈現(xiàn)。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3背景知識02知識導圖02企業(yè)級應用開發(fā)介紹02企業(yè)級應用是指那些為商業(yè)組織、大型企業(yè)而創(chuàng)建的應用程序。這些企業(yè)級應用具有用戶數(shù)多、數(shù)據(jù)量大、事務密集等特點,往往能夠滿足未來業(yè)務需求的變化,易于升級和維護。一個好的企業(yè)級應用的體系架構,通常來自優(yōu)秀的解決方案,往往在設計開始時就要考慮其架構的合理性、靈活性和健壯性,以便既能滿足企業(yè)用戶的復雜需求也能為今后的系統(tǒng)升級改造留有余地,從而增強系統(tǒng)在多變的商業(yè)社會中的適應性,為客戶帶來最大利益。Web分層設計思想02企業(yè)級Web項目通常采用分層架構,將系統(tǒng)分為表現(xiàn)層、業(yè)務層和數(shù)據(jù)訪問層。其中表現(xiàn)層(UI層)負責接收客戶端請求,并向客戶端返回處理后的結果。業(yè)務層(Service層)負責系統(tǒng)的業(yè)務邏輯處理以及與表現(xiàn)層和數(shù)據(jù)訪問層進行交互。數(shù)據(jù)訪問層(DAO/Mapper層)負責與數(shù)據(jù)庫進行交互,將數(shù)據(jù)持久化到數(shù)據(jù)庫中。

Mybatis框架介紹02MyBatis是一個優(yōu)秀的基于Java的持久層框架,它內(nèi)部封裝了JDBC,使開發(fā)者只需關注SQL語句本身,而不用再花費精力去處理諸如注冊驅動、創(chuàng)建Connection、配置Statement等與業(yè)務無關的操作。它以XML或注解的方式配置要執(zhí)行的各種Statement和PreparedStatement,通過Java對象與SQL動態(tài)參數(shù)進行映射以生成最終執(zhí)行的SQL語句,最后再由MyBatis將執(zhí)行后的結果映射成Java對象并返回。Spring框架介紹02Spring是一個優(yōu)秀的開源框架,是為了解決企業(yè)級應用開發(fā)存在的復雜問題而創(chuàng)建的,它將面向接口編程的設計思想貫穿于框架的設計與實現(xiàn)中,利用依賴注入(DI)、控制反轉(IOC)、面向切面(AOP)等技術解決了各模塊之間的高耦合問題,使得開發(fā)出的系統(tǒng)具有松耦合、可擴展、可維護等特點。SpringMVC框架介紹02SpringMVC是一種基于MVC設計模式的的輕量級Web框架,它出自Spring全家桶,可以與Spring框架進行無縫整合。SpringMVC采用三層架構思想,對Web各層進行了解耦,可以方便開發(fā)者構建出易于擴展的Web應用程序。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項目介紹03業(yè)務場景03業(yè)務場景描述:項目經(jīng)理老王:小王,最近對CRM系統(tǒng)的需求調(diào)研完成了,系統(tǒng)的主要功能包括用戶管理、權限管理、資源權限管理、日志管理、產(chǎn)品管理、訂單管理、客戶管理等。程序員小王:這些功能看上去有些難度,我有點擔心自己是否能勝任。項目經(jīng)理老王:不用擔心,我們可以先通過系統(tǒng)的數(shù)據(jù)庫設計和功能效果圖來加深對業(yè)務需求的理解,然后從用戶管理、權限管理、日志管理這幾個簡單模塊入手,采用邊學邊練的方法逐步掌握SSM框架的使用,等基礎打扎實后就可以實現(xiàn)更復雜的功能了。程序員小王:太好了,那我們現(xiàn)在就開始吧!數(shù)據(jù)庫設計03CRM系統(tǒng)中包含的部分業(yè)務表product產(chǎn)品表

orders訂單表

member會員表

syslog系統(tǒng)日志表

users用戶表

users-role用戶角色表

role角色表

role-permission角色資源表

traveller游客表

logs業(yè)務日志表

order-traveller游客訂單表項目整體結構03CRM系統(tǒng)使用SSM框架作為核心開發(fā)技術,利用Maven作為項目構建工具,數(shù)據(jù)庫采用Mysql8,開發(fā)工具使用IntelliJIDEA。graduationdesign-dao:存放數(shù)據(jù)持久層的接口和實現(xiàn)類,主要負責與數(shù)據(jù)庫進行交互。graduationdesign-domain:存放數(shù)據(jù)庫的映射實體類,主要是各個數(shù)據(jù)表對應的POJO封裝類。graduationdesign-service:存放業(yè)務層接口及其實現(xiàn)類,用于完成系統(tǒng)的業(yè)務邏輯處理。graduationdesign-utils:存放項目所需使用的各種工具類。graduationdesign-web:存放前端視圖文件,主要負責與用戶進行交互。項目搭建03數(shù)據(jù)庫導入項目搭建項目展示E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3經(jīng)典問題強化04經(jīng)典問題強化04什么是企業(yè)級應用,它具有什么特點?什么是CRM系統(tǒng)、CMS系統(tǒng)和ERP系統(tǒng)?CRM系統(tǒng)的常用功能有哪些?E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3本章小結05

本章小結05本章首先對企業(yè)級應用開發(fā)的概念及其特點進行簡單介紹,然后通過Web分層思想引出了SSM框架,接著對三個框架的基本概念做了描述。最后帶領讀者搭建并演示CRM系統(tǒng),提升讀者對業(yè)務需求的理解,為后續(xù)的學習與實踐打下基礎。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3本章結束謝謝!E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3第二章MyBatis基礎-理解MyBatis相關概念-理解工廠設計模式,能區(qū)分簡單工廠模式、工廠方法模式、抽象工廠模式-熟悉MyBatis的優(yōu)點,了解JDBC、Hibernate與之對比差別-掌握MyBatis的體系結構,熟悉三層架構的功能-熟練掌握MyBatis的開發(fā)流程-熟練掌握MyBatis入門程序,能根據(jù)需求設計程序010203040506項目需求背景知識項目實現(xiàn)經(jīng)典問題強化本章小結0102030405E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項目需求01項目需求01項目經(jīng)理老王:小王,我們這次開發(fā)的CRM系統(tǒng)將會使用MyBatis框架,你對這個框架熟悉么?程序員小王:聽說過這個框架,現(xiàn)在還不太熟悉,接下來我快速學習一下,然后完成產(chǎn)品查詢功能。項目經(jīng)理老王:好,在學習和應用MyBatis時,需要重點掌握工廠設計模、MyBatis體系結構、MyBatis開發(fā)流程。只有深入理解這些,才能很好的運用框架完成產(chǎn)品查詢功能。程序員小王:知道了,那我就先熟悉下MyBatis框架,快速入門學習一下,然后應用到項目實踐中。功能描述01產(chǎn)品查詢:可以根據(jù)產(chǎn)品的某些條件查詢對應的產(chǎn)品,比如產(chǎn)品名稱等。默認情況下,我們不需要任何條件,系統(tǒng)會進行全量查詢。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3背景知識02知識導圖02工廠設計模式02工廠設計模式是MyBatis框架中的一個重要底層技術。例如,SqlSessionFactory就使用了工廠模式來完成對象的創(chuàng)建。為了更好的理解MyBatis工作原理,有必要先學習下工廠設計模式。什么是工程設計模式?工廠模式是將創(chuàng)建對象的具體過程屏蔽隔離起來,從而達到更高的靈活性,工廠模式可以分為三類:簡單工廠模式(SimpleFactory)工廠方法模式(FactoryMethod)抽象工廠模式(AbstractFactory)簡單工廠模式02簡單工廠模式的核心是定義一個創(chuàng)建對象的接口,將對象的創(chuàng)建和本身的業(yè)務邏輯分離,降低系統(tǒng)的耦合度,使得兩個修改起來相對容易些,當以后實現(xiàn)改變時,只需要修改工廠類即可。工廠方法模式02和簡單工廠模式中工廠負責生產(chǎn)所有產(chǎn)品相比,工廠方法模式將工廠抽象化,并定義一個創(chuàng)建對象的接口。每增加新產(chǎn)品,只需增加該產(chǎn)品以及對應的具體實現(xiàn)工廠類,由具體工廠類決定要實例化的產(chǎn)品是哪個,將對象的創(chuàng)建與實例化延遲到子類,這樣工廠的設計就符合“開閉原則”了,擴展時不必去修改原來的代碼。在使用時,用戶只需知道產(chǎn)品對應的具體工廠,關注具體的創(chuàng)建過程,甚至不需要知道具體產(chǎn)品類的類名,當我們選擇哪個具體工廠時,就已經(jīng)決定了實際創(chuàng)建的產(chǎn)品是哪個了。抽象工廠模式02抽象工廠模式主要用于創(chuàng)建相關對象的家族。當一個產(chǎn)品族中需要被設計在一起工作時,通過抽象工廠模式,能夠保證客戶端始終只使用同一個產(chǎn)品族中的對象;并且通過隔離具體類的生成,使得客戶端不需要明確指定具體生成類;所有的具體工廠都實現(xiàn)了抽象工廠中定義的公共接口,因此只需要改變具體工廠的實例,就可以在某種程度上改變整個軟件系統(tǒng)的行為。抽象工廠模式02MyBatis概述02MyBatis的前身是apache的一個開源項目iBatis,2010年這個項目由apachesoftwarefoundation遷移到了googlecode,并且改名為MyBatis。2013年11月遷移到Github。MyBatis是一個優(yōu)秀的基于Java的持久層框架,它內(nèi)部封裝了JDBC,使開發(fā)者只需關注SQL語句本身,而不用再花費精力去處理諸如注冊驅動、創(chuàng)建Connection、配置Statement等繁雜過程。Mybatis通過XML或注解的方式將要執(zhí)行的各種Statement、PreparedStatement等配置起來,并通過Java對象和Statement中SQL動態(tài)參數(shù)進行映射生成最終執(zhí)行的SQL語句,最后由MyBatis框架執(zhí)行SQL并將結果映射成Java對象并返回。JDBC與MyBatis02JDBC與MyBatis的關系是怎樣的呢?MyBatis內(nèi)部封裝了JDBC,與JDBC相比,MyBatis具有以下幾個特點:(1)封裝了JDBC對數(shù)據(jù)庫的各種操作,減少代碼。DAO層代碼可以通過現(xiàn)有插件直接生成,編寫代碼也變得非常的方便,大大提高編碼效率和準確性(相比手工coding的失誤等);(2)MyBatis連接池管理、緩存管理等帶來代碼性能優(yōu)勢和可靠性。MyBatis增加了連接池、一、二級緩存,大大提高了代碼性能。此外,MyBatis作為一個工業(yè)級的開源框架,其代碼是久經(jīng)考驗的。(3)一致的編碼風格大大減少了代碼的溝通交流成本。Hibernate與MyBatis02Hibernate框架是提供了全面的數(shù)據(jù)庫封裝機制的“全自動”O(jiān)RM,即實現(xiàn)了POJO和數(shù)據(jù)庫表之間的映射,以及SQL的自動生成和執(zhí)行。相對于此,MyBatis只能算作是“半自動”O(jiān)RM。其著力點是,在POJO類與SQL語句之間的映射關系。也就是說,MyBatis并不會為程序員自動生成SQL語句。具體的SQL需要程序員自己編寫,然后通過SQL語句映射文件,將SQL所需的參數(shù),以及返回的結果字段映射到指定POJO。因此,MyBatis成為了“全自動”O(jiān)RM的一種有益補充。與Hibernate相比,MyBatis具有以下幾個特點:(1)在XML文件中配置SQL語句,實現(xiàn)了SQL語句與代碼的分離,給程序的維護帶來了很大便利。(2)因為需要程序員自己去編寫SQL語句,程序員可以結合數(shù)據(jù)庫自身的特點靈活控制SQL語句,因此能夠實現(xiàn)比Hibernate等全自動ORM框架更高的查詢效率,能夠完成復雜查詢。(3)簡單,易于學習,易于使用,上手快MyBatis體系結構02Mybatis的整體架構從宏觀上可分為三層,分別是基礎支持層、核心處理層和接口層。MyBatis的開發(fā)流程02E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項目實現(xiàn)03業(yè)務場景03業(yè)務場景描述:項目經(jīng)理老王:小王,我想了解一下你在MyBatis方面的掌握情況,能否詳細介紹一下你學到了哪些內(nèi)容?程序員小王:嗯,經(jīng)過這兩天的學習。我理解了工廠方法設計模式,這是MyBatis核心技術之一,之后了解了JDBC、MyBatis、Hibernate的區(qū)別以及Mybatis的優(yōu)勢、最后重點學習了MyBatis的開發(fā)流程:創(chuàng)建核心配置文件,創(chuàng)建映射文件,創(chuàng)建SqlSessionFactory,創(chuàng)建SqlSession,執(zhí)行增刪改查,關閉資源。我覺得現(xiàn)在可以使用MyBatis技術來實現(xiàn)產(chǎn)品模塊的查詢功能了。項目經(jīng)理老王:很好,那就開始吧數(shù)據(jù)庫設計03列名列類型描述idint主鍵productNumvarchar(50)產(chǎn)品編號productNamevarchar(50)產(chǎn)品名稱cityNamevarchar(50)城市名稱DepartureTimedate時間productPricedouble(11,0)價格productDescvarchar(250)產(chǎn)品描述productStatusint產(chǎn)品狀態(tài)產(chǎn)品信息表設計數(shù)據(jù)庫設計03產(chǎn)品信息表實現(xiàn)CREATETABLE`product`(`id`intNOTNULLAUTO_INCREMENT,`productNum`varchar(50)CHARACTERSETutf8COLLATEutf8_general_ciNULLDEFAULTNULL,`productName`varchar(50)CHARACTERSETutf8COLLATEutf8_general_ciNULLDEFAULTNULL,`cityName`varchar(50)CHARACTERSETutf8COLLATEutf8_general_ciNULLDEFAULTNULL,`DepartureTime`dateNULLDEFAULTNULL,`productPrice`double(11,0)NULLDEFAULTNULL,`productDesc`varchar(250)CHARACTERSETutf8COLLATEutf8_general_ciNULLDEFAULTNULL,`productStatus`intNULLDEFAULTNULL,`imgPath`varchar(255)CHARACTERSETutf8COLLATEutf8_general_ciNULLDEFAULTNULL,PRIMARYKEY(`id`)USINGBTREE)ENGINE=InnoDBAUTO_INCREMENT=29CHARACTERSET=utf8COLLATE=utf8_general_ciROW_FORMAT=DYNAMIC;數(shù)據(jù)庫設計03產(chǎn)品信息表初始化數(shù)據(jù)INSERTINTO`product`VALUES(1,'001','九陽電飯煲','云南','0020-04-07',2100,'云南歡迎你',0,'/upload/7fa53dfee949485ea77833ae2bd70556.jpeg');INSERTINTO`product`VALUES(2,'002','格力空調(diào)','昆明','2020-06-06',1800,'昆明歡迎你',1,'/upload/7fa53dfee949485ea77833ae2bd70556.jpeg');INSERTINTO`product`VALUES(3,'003','華為手機','上海','2020-05-08',3800,'魔都歡迎你',1,'/upload/7fa53dfee949485ea77833ae2bd70556.jpeg');INSERTINTO`product`VALUES(4,'004','小米電視','北京','2020-05-09',5800,'北京我來了',1,'/upload/7fa53dfee949485ea77833ae2bd70556.jpeg');INSERTINTO`product`VALUES(5,'005','格力空氣炸鍋','昆明','2020-04-07',18000,'深圳歡迎你',1,'/upload/7fa53dfee949485ea77833ae2bd70556.jpeg');INSERTINTO`product`VALUES(6,'006','小米電視','昭通','2020-05-08',1200,'昭通大山包',0,'/upload/7fa53dfee949485ea77833ae2bd70556.jpeg');項目具體包及其作用03①bean:存放JavaBean類:ProductBean是產(chǎn)品類的pojo對象②dao:存放訪問數(shù)據(jù)庫的方法ProductDao是產(chǎn)品類的Dao層接口,在這里定義了查詢所有產(chǎn)品的方法③util:存放工具類MybatisUtils是工具類,用來生成SqlSessionFactory獲取SqlSession④resources:存放資源文件,包括mapper接口映射文件和數(shù)據(jù)庫配置信息文件以及mybatis的核心配置文件。ProductMapper.xml是產(chǎn)品類的Mapper映射文件,具體的SQL語句就寫在這perties描述數(shù)據(jù)庫的連接配置信息mybatis-config.xml是MyBatis的核心配置文件⑤test:存放測試類AppTest是測試類用來測試查詢所有產(chǎn)品創(chuàng)建Maven項目03創(chuàng)建Maven項目03創(chuàng)建Maven項目03導入項目依賴03在pom.xml中導入項目所需要的依賴包<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.25</version></dependency>…………省略……………<!--單元測試相關包--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency>

數(shù)據(jù)庫配置信息03使用外部文件配置連接數(shù)據(jù)庫所需要信息,包括驅動程序driver,連接地址url,用戶名username和密碼passworddriver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/ssm?userSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCusername=rootpassword=root配置mybatis核心文件03創(chuàng)建mybatis-config.xml核心配置文件,這里主要配置的是JDBC連接信息<!--連接我們的perties屬性文件--><propertiesresource="perties"/><environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><!--這里是從屬性文件perties文件讀取的鍵值對數(shù)據(jù),用于連接數(shù)據(jù)庫--><propertyname="driver"value="${driver}"/><propertyname="url"value="${url}"/><propertyname="username"value="${username}"/><propertyname="password"value="${password}"/></dataSource></environment></environments>配置mybatis核心文件03創(chuàng)建mybatis-config.xml核心配置文件,這里主要配置的是Mapper映射文件<mappers><!--這里是改為自己接口的映射文件的路徑,下面的第二張圖片為例子--><mapperresource="Mapper/ProductMapper.xml"/></mappers>工具類03工具類的主要功能是,讀取XML信息,初始化數(shù)據(jù)庫連接,事實上底層是我們之前學習過得JDBC連接,所以拿到這個連接,我們就可以執(zhí)行剛才ProductMapper.xml中的SQL語句static{try{//使用Mybatis第一步:獲取SqlSessionFactoryStringresource="mybatis-config.xml";InputStreaminputStream=Resources.getResourceAsStream(resource);sqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);}catch(IOExceptione){e.printStackTrace();}}工具類03工具類的主要功能是,讀取XML信息,初始化數(shù)據(jù)庫連接,事實上底層是我們之前學習過得JDBC連接,所以拿到這個連接,我們就可以執(zhí)行剛才ProductMapper.xml中的SQL語句//既然有了SqlSessionFactory,顧名思義,我們需要獲得SqlSession的實例//SqlSession提供了在數(shù)據(jù)庫執(zhí)行SQL命令所需的所有方法publicstaticSqlSessiongetSqlSession(){returnsqlSessionFactory.openSession();}產(chǎn)品實體03創(chuàng)建產(chǎn)品實體,Bean中主要是一些字段,跟表設計相對應,以存儲對應的字段信息

publicclassProductBean{privateintid;privateStringproductNum;privateStringproductName;privateStringcityName;privateDatedate;privateBigDecimalproductPrice;privateStringproductDesc;privateintproductStatus;

省略set、get方法}用戶Mapper及實現(xiàn)03在UserMapper中添加insertUser(Useruser)方法完成添加用戶功能。packageduct.dao;importduct.bean.ProductBean;importjava.util.List;publicinterfaceProductDao{publicList<ProductBean>getProductBeanList();}<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-////DTDMapper3.0//EN""/dtd/mybatis-3-mapper.dtd"><!--namespace=綁定一個對應的Dao/Mapper接口,相當于實現(xiàn)了接口--><mappernamespace="duct.dao.ProductDao"><!--id=使用的方法名,resultType=返回結果集的類型(全路徑)--><selectid="getProductBeanList"resultType="duct.bean.ProductBean">select*fromproduct</select></mapper>

測試產(chǎn)品信息的查詢功能03測試類的功能是完成產(chǎn)品信息的查詢,因為假定開始產(chǎn)品信息不多,此處做的是全量查詢。。@Testpublicvoidtest(){//第一步:獲取sqlSession對象SqlSessionsqlSession=MybatisUtils.getSqlSession();//使用getMapper執(zhí)行sql語句ProductDaouserdao=sqlSession.getMapper(ProductDao.class);List<ProductBean>productBeanList=userdao.getProductBeanList();for(ProductBeanproduct:productBeanList){System.out.println(product);}//關閉sqlSessionsqlSession.close();}E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3經(jīng)典問題強化04經(jīng)典問題強化04如何快速掌握MyBatis框架?MyBatis框架適用場景?MyBatis的本質及原理?E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3本章小結05

本章小結05

在本章節(jié)中通過在CRM系統(tǒng)中查詢產(chǎn)品模塊學習了MyBatis快速入門開發(fā)及對應的核心知識點。

首先對數(shù)據(jù)持久層進行了簡單的介紹,主要介紹了JDBC和Hibernate,并分別與MyBatis框架進行了對比,接著介紹了MyBatis的體系結構和工作原理,最后講解了如何使用MyBatis框架來進行CRM項目需求的開發(fā)。通過本章的學習,可以了解MyBatis的概念和作用,理解MyBatis中的相關常用術語,熟悉MyBatis中的優(yōu)勢以及與主流持久層框架的區(qū)別,并能夠掌握項目MyBatis開發(fā)技術,最后真正的掌握MyBatis在項目中的實際應用。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3本章結束謝謝!E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3第三章

MyBatis核心組件-掌握MyBatis核心組件及其作用-掌握利用SqlSession實現(xiàn)增刪改查操作的方法-掌握SQLMapper映射器的原理、配置與使用方法010203項目需求背景知識項目實現(xiàn)經(jīng)典問題強化本章小結0102030405E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項目需求01項目需求01項目經(jīng)理老王:小王,項目中的產(chǎn)品模塊完成的怎么樣了?程序員小王:已經(jīng)完成了產(chǎn)品模塊的顯示列表功能,正在設計和實現(xiàn)產(chǎn)品創(chuàng)建功能,這里需要深入理解MyBatis的核心組件,包括SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、SQLMapper等內(nèi)容,我對這些還不是很清楚,需要深入思考來消化知識點。項目經(jīng)理老王:好的,在這里特別要注意下SqlSession的工作原理及使用方法,以及SQLMapper中的各種標簽的配置,只有搞清楚這些才能在項目中靈活運用MyBatis。程序員小王:收到,一定按時保質完成任務,不耽誤項目進度。功能描述01創(chuàng)建新產(chǎn)品:填寫產(chǎn)品的相關信息,比如產(chǎn)品編號、產(chǎn)品名稱、產(chǎn)品價格等,進行保存,并且可以在創(chuàng)建新產(chǎn)品時設置產(chǎn)品狀態(tài),默認產(chǎn)品狀態(tài)為關閉。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3背景知識02知識導圖02學習并掌握Mybatis,就要深入理解Mybatis的核心組件。Mybatis四大核心組件是:SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、SQLMapper。MyBatis核心組件02這四個組件是前后依賴關系,SqlSessionFactory是SqlSessionFactoryBuilder通過build方法創(chuàng)建的,而SqlSession是SqlSessionFactory生產(chǎn)的,SqlSession對象又通過加載SQLMapper執(zhí)行SQL語句,完成數(shù)據(jù)庫的操作SqlSessionFactoryBuilder02作為Mybatis的核心組件之一,它直接翻譯為中文是SQL會話工廠建造者,也有人管它叫作MyBatis的構造器。作用是根據(jù)配置信息或者代碼來生成SqlSessionFactory。SqlSessionFactoryBuilder對象在創(chuàng)建完工廠對象后,就完成了其使命,即可被銷毀。所以,一般會將該對象創(chuàng)建為一個方法內(nèi)的局部對象,方法結束,對象銷毀。SqlSessionFactoryBuilder有五個build()方法,每一種都允許從不同的資源中創(chuàng)建一個SqlSessionFactory實例。SqlSessionFactorybuild(InputStreaminputstream)SqlSessionFactorybuild(InputStreaminputstream,Stringenvironment)SqlSessionFactorybuild(InputStreaminputStream,Propertiesproperties)SqlSessionFactorybuild(InputStreaminputStream,Stringenv,Propertiesprops)SqlSessionFactorybuild(Configurationconfig)SqlSessionFactory02SqlSessionFactory直接翻譯為SQL會話工廠,它是一個接口,用于創(chuàng)建SqlSession的實例。簡單來講,SqlSessionFactory是MyBatis的關鍵對象,它是單個數(shù)據(jù)庫映射關系經(jīng)過編譯后的內(nèi)存鏡像。SqlSessionFactory的實例是MyBatis應用的中心,它唯一的作用就是生產(chǎn)MyBatis的核心接口對象SqlSession,它的責任是明確的、唯一的。所以,我們往往會采用單例模式處理它。SqlSessionFactory提供了六個方法創(chuàng)建SqlSession實例SqlSessionopensession()Sqlsessionopensession(booleanautocommit)SqlSessionopensession(connectionconnection)Sqlsessionopensession(TransactionIsolationLevellevel)SqlSessionopenSession(ExecutorTypeexecType,TransactionIsolationLevellevel)SqlSessionopensession(ExecutorTypeexecType)SqlSessionopensession(ExecutorTypeexecType,booleanautocommit)SqlSessionopensession(ExecutorTypeexecType,Connectionconnection)Confiaurationgetconfiouration():SqlSession接口02

Mybatis是通過SqlSession來實現(xiàn)與數(shù)據(jù)庫會話的,相當于JDBC中的一個Connection對象,是整個Mybatis運行的核心。SqlSession接口提供了查詢,插入,更新,刪除等方法,Mybatis中所有的數(shù)據(jù)庫交互都由SqlSession來完成。一個SqlSession對應著一次數(shù)據(jù)庫會話,一次會話以SqlSession對象的創(chuàng)建開始,以SqlSession對象的關閉結束。SqlSession簡單的工作流程如下:SqlSession接口02SqlSession是MyBatis的核心接口,主要負責與數(shù)據(jù)庫進行交互,它提供了語句執(zhí)行、批量更新、事務控制、本地緩存、對象關閉等五類二十余種方法<T>Tselectone(stringstatement,0bjectparameter)<E>ListE>selectList(Stringstatement,objectparameter)<K,V>Map<K,V>selectMap(Stringstatement,Objectparameter,stringmapKey)intinsert(Stringstatement,0bjectparameter)intupdate(Stringstatement,objectparameter)intdelete(Stringstatement,objectparameter)<E>List<E>selectList(Stringstatement,0bjectparameter,RowBoundsrowBounds)<K,V>Map<,>selectNap(Stringstatement,Objectparameter,StringmapKey,RowBoundsrowoounds)voidselect(Stringstatement,Objectparameter,ResultHandler<T>handler)voidselect(Stringstatement,Objectparameter,RowBoundsowBounds,ResultHandlerThandler)SQLMapper相關概念02SQLMapper(映射器)是MyBatis中最重要的組件之一,它主要作用是將Java類與數(shù)據(jù)庫中的SQL語句進行映射,從而實現(xiàn)數(shù)據(jù)的持久化操作。下面是SQLMapper相關的一些概念:①XML映射器:XML映射器是MyBatis中一組數(shù)據(jù)庫映射文件,里面定義了對業(yè)務操作相關的各種SQL語句(如SELECT、INSERT、UPDATE和DELETE等)以及如何將查詢結果映射為Java對象的規(guī)則。②接口映射器:除了XML映射器外,MyBatis還允許定義Java接口作為映射器。這些接口的方法名與XML文件中映射標簽的ID屬性值一致,以便可以像調(diào)用Java方法一樣執(zhí)行SQL語句。③結果映射:在XML映射文件中,可以定義結果映射,用于指定如何將SQL查詢結果的列映射到Java對象的屬性值上。④動態(tài)SQL:SQLMapper支持動態(tài)SQL,它可以根據(jù)傳入的參數(shù)動態(tài)生成SQL語句。MyBatis提供了一系列的XML標簽(如<if>,<choose>,<foreach>等)來支持這種功能。⑤類型處理器:MyBatis允許自定義類型處理器,它以特定的方式處理Java對象和SQL數(shù)據(jù)類型之間的映射關系。SQLMapper元素標簽02SQLMapper映射器既可以使用注解也可以使用XML定義,但是注解的方式在企業(yè)級應用中較少,這是因為在面對復雜的SQL語句時,注解會顯得很無力。因此我們重點學習XML的實現(xiàn)方式。映射器的XML實現(xiàn)主要通過配置相應的標簽來實現(xiàn)。這些標簽用于定義SQL語句、配置結果映射規(guī)則等。元素名稱描述<select>定義一個SQL查詢語句,用于檢索數(shù)據(jù)??梢灾付▍?shù)映射和結果集映射規(guī)則。<insert>定義一個SQL插入語句,用于向數(shù)據(jù)庫插入數(shù)據(jù)??梢灾付▍?shù)映射。<update>定義一個SQL更新語句,用于修改數(shù)據(jù)庫中的數(shù)據(jù)??梢灾付▍?shù)映射。<delete>定義一個SQL刪除語句,用于從數(shù)據(jù)庫中刪除數(shù)據(jù)??梢灾付▍?shù)映射。<resultType>定義結果集的映射規(guī)則,可以為映射類的全路徑,這樣MyBatis可以將結果集映射成對應JavaBean;也可以為int、double、float等基本類型參數(shù);還可以使用別名,但要符合別名命名規(guī)范,且不能與resultMap同時使用。<resultMap>定義結果集的映射規(guī)則,將數(shù)據(jù)庫查詢結果映射到Java對象。可以指定列到屬性的映射。<sql>定義可重用的SQL代碼片段,用于減少重復的SQL代碼。<include>引入先前定義的SQL片段,提高XML配置的可讀性和可維護性。<typeAlias>為Java類型設置短的別名,以簡化XML配置中的類型引用。SQLMapper開發(fā)02XML方式實現(xiàn)映射器主要分為Mapper接口定義、Mapper映射文件配置、編寫SQL映射語句、編寫結果映射、Mapper接口注冊、映射器調(diào)用等環(huán)節(jié),下面以一個User對象的增刪改查操作為例詳細講解映射器的配置和使用方法packagecom.example.mapper;importcom.example.model.User;publicinterfaceUserMapper{UserselectUser(intid);intinsertUser(Useruser);intupdateUser(Useruser);intdeleteUser(intid);}SQLMapper開發(fā)02

在<mapper>標簽中,可以定義與數(shù)據(jù)庫操作相關的SQL映射語句,如<select>、<insert>、<update>、<delete>等,例如下面映射文件中就包含了對User對象的增刪改查操作,如代碼如下:<mappernamespace="com.example.mapper.UserMapper"><selectid="selectUser"resultType="com.example.model.User">SELECT*FROMusersWHEREid=#{id}</select><insertid="insertUser">INSERTINTOusers(name,age)VALUES(#{name},#{age})</insert><updateid="updateUser">UPDATEusersSETname=#{name},age=#{age}WHEREid=#{id}</update><deleteid="deleteUser">DELETEFROMusersWHEREid=#{id}</delete></mapper>SQLMapper開發(fā)02編寫結果映射:可以使用<resultType>或<resultMap>標簽進行結果集映射<resultMapid="userResultMap"type="com.example.model.User"><idproperty="id"column="user_id"/><resultproperty="name"column="user_name"/><resultproperty="age"column="user_age"/></resultMap><selectid="selectUserWithResultMap"resultMap="userResultMap">SELECT*FROMusersWHEREid=#{id}</select>SQLMapper開發(fā)02Mapper接口注冊:在MyBatis核心配置文件中對Mapper接口(UserMapper.java)進行注冊<configuration><mappers><mapperclass="com.example.mapper.UserMapper"/></mappers></configuration>映射器調(diào)用02

映射器調(diào)用:首先需要獲取SqlSession對象,然后通過getMapper方法獲取Mapper接口實例,最后調(diào)用對應的成員方法完成數(shù)據(jù)庫操作try(SqlSessionsqlSession=sqlSessionFactory.openSession()){UserMapperuserMapper=sqlSession.getMapper(UserMapper.class);Useruser=userMapper.selectUser(1);}E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項目實現(xiàn)03業(yè)務場景03業(yè)務場景描述:項目經(jīng)理老王:小王,我想了解一下你在MyBatis核心技術方面的掌握情況,能否詳細介紹一下你學到了哪些內(nèi)容?程序員小王:當然可以。我利用周末的時間將MyBatis的核心內(nèi)容進行了深入的學習,掌握了MyBatis的四大核心組件SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、SQLMapper的功能、原理及使用方法,現(xiàn)在有信心利用所學知識,實現(xiàn)產(chǎn)品模塊中的新建產(chǎn)品功能。項目經(jīng)理老王:好的,期待你的表現(xiàn)。數(shù)據(jù)庫設計03列名列類型描述idint主鍵productNumvarchar(50)產(chǎn)品編號productNamevarchar(50)產(chǎn)品名稱cityNamevarchar(50)城市名稱DepartureTimedate時間productPricedouble(11,0)價格productDescvarchar(250)產(chǎn)品描述productStatusint產(chǎn)品狀態(tài)產(chǎn)品信息表設計創(chuàng)建包、接口和對應的XML文件03

因為第二章中已經(jīng)實現(xiàn)了產(chǎn)品查詢功能,因此本章將在該項目的基礎上繼續(xù)實現(xiàn)“新建產(chǎn)品”功能。

項目在duct包下新增mapper目錄,用于存放訪問數(shù)據(jù)庫的接口和映射文件,其中ProductMapper.java是產(chǎn)品數(shù)據(jù)訪問的Mapper接口,里面定義了新增產(chǎn)品的方法。ProductMapper.xml是產(chǎn)品的映射文件,里面定義了插入產(chǎn)品信息的SQL語句。代碼實現(xiàn)031.實現(xiàn)ProductMapper.java、ProductMapper.xml2.編輯mybatis-config.xml配置文件3.實現(xiàn)AppTest測試產(chǎn)品信息的創(chuàng)建功能03測試類的功能是完成產(chǎn)品創(chuàng)建@Testpublicvoidtest(){//獲取sqlSession對象SqlSessionsqlSession=MybatisUtils.getSqlSession();//獲取Mapper對象ProductMapperuserdao=sqlSession.getMapper(ProductMapper.class);ProductBeanproductBean=newProductBean();productBean.setProductName("長城一日游");

。。。。。//執(zhí)行插入操作intcount=userdao.insertProduct(productBean);System.out.println(count);//提交更新

sqlSmit();

//關閉sqlSession對象sqlSession.close();}E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3經(jīng)典問題強化04經(jīng)典問題強化04SqlSessionFactory都有哪些功能?SqlSession有哪些特點?SQLMapper映射文件的作用是什么?E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3本章小結05

本章小結05本章主要對MyBatis的核心組件進行了詳細講解。首先介紹了MyBatis核心組件的功能和特點,強調(diào)了它們在整個框架中的地位。然后深入探討了SQLMapper映射器的核心原理和使用方法以及如何利用SqlSession完成對數(shù)據(jù)庫的增、刪、改、查等操作。最后通過CRM系統(tǒng)中的新建產(chǎn)品模塊的實現(xiàn),來強化讀者的實踐能力。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3本章結束謝謝!E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3第四章MyBatis關聯(lián)映射-掌握動態(tài)SQL主要元素的使用-理解關聯(lián)關系的基本概念-掌握基于XML的一對一關聯(lián)映射方式-掌握基于XML的一對多關聯(lián)映射方式-掌握基于XML的多對多關聯(lián)映射方式-掌握基于注解的一對一關聯(lián)映射方式-掌握基于注解的一對多關聯(lián)映射方式-掌握基于注解的多對多關聯(lián)映射方式0102030405060708項目需求背景知識項目實現(xiàn)經(jīng)典問題強化本章小結0102030405E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3項目需求01項目需求01項目經(jīng)理老王:小王,之前我們已經(jīng)學習了MyBatis的基礎以及核心組件,這些都是運用Mybatis進行開發(fā)的基礎。程序員小王:現(xiàn)在使用Mybatis完成一個單表的增刪改查功能我已經(jīng)掌握了,但是在實際的業(yè)務中,表與表之間的關聯(lián)關系可不是只有單表這種簡單情況,還有多表之間的關聯(lián)查詢以及一些復雜的sql查詢,這些使用Mybatis可以實現(xiàn)么?項目經(jīng)理老王:可以的,Mybatis可不是只能做單表的查詢,它還可以使用動態(tài)SQL完成復雜的sql查詢,比如比較查詢、模糊查詢、批量查詢,以及可以實現(xiàn)多表之間的關聯(lián)查詢?,F(xiàn)在客戶要求系統(tǒng)能針對不同的用戶可以操作的模塊不同,需要實現(xiàn)一個權限管理功能。程序員小王:對于權限管理功能會涉及到用戶、角色、資源幾張表,我在學習Mybatis的關聯(lián)映射之后就可以實現(xiàn)這個功能模塊。功能描述01角色管理:權限列表頁面展示了當前所有角色的列表,每個角色都有對應的描述和操作。用戶可以進行增加、刪除、修改等操作。為了方便用戶同時操作多個角色,提供了全選和反選功能。功能描述01權限詳情:展示某個角色所擁有的權限列表,一個角色可以擁有多個權限,例如ADMIN角色是管理員,它擁有角色管理、資源管理、用戶管理、商品管理、日志管理等多個權限。功能描述01資源權限列表:該頁面展示了所有資源權限列表,每個資源權限都對應著對某一特定資源的管理,例如用戶管理權限就可以對用戶進行管理。功能描述01資源權限詳情頁面可以查看某一資源所對應的所有角色及其權限,這些角色具有對該資源的管理能力。不同的角色所擁有的資源權限是不同的,比如開發(fā)人員可以對日志進行管理,而銷售人員可以對商品進行管理。E6636BC20180234D78A0072836F0BA7012B9B20215E26B50ACD98F3EB1392B551B4EBF38216C3B0222692E0838460BEBE009217A41D02B111BBFC23A765E14D124F449AD6A2784D7348224B76F624F873694ECB77C9D5FC1A8B6E19E00602C88DA962B9CCE3背景知識02知識導圖02動態(tài)SQL02動態(tài)SQL是MyBatis的強大特性之一。如果使用過JDBC或其它類似的框架,應該能理解根據(jù)不同條件拼接SQL語句的麻煩,例如拼接時要確保不能忘記添加必要的空格,還要注意去掉列表最后一個列名的逗號等。關聯(lián)關系02通過之前的學習,我們已經(jīng)能夠使用MyBatis以面向對象的方式對數(shù)據(jù)庫進行操作,但這些操作只是針對單表。在實際的開發(fā)中,對數(shù)據(jù)庫的操作常常會涉及多張表,這在面向對象中就會映射成對象與對象之間的三種關聯(lián)關系。下面對這些關系進行具體說明:一對一關系:是指對于實體集A與實體集B,A中的每一個實體最多與B中一個實體有關系。反之,在實體集B中的每個實體最多與實體集A中的一個實體有關系。例如每個公民只能擁有一個身份證號,而每個身份證號只能屬于一個公民。一對多關系:是指實體集A與實體集B中至少有N(N>0)個實體有關系,并且實體集B中每一個實體至多與實體集A中一個實體有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論