版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫虛擬教研室制作數(shù)據(jù)庫《數(shù)據(jù)庫原理及應(yīng)用》目錄03
Java操作MySQL數(shù)據(jù)庫01
數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)02數(shù)據(jù)庫訪問接口第14章數(shù)據(jù)庫應(yīng)用04
ORM技術(shù)數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)
典型的數(shù)據(jù)庫應(yīng)用系統(tǒng)中,一般分為三個(gè)邏輯層:表現(xiàn)層(或客戶端層):包含用戶界面和與用戶直接交互的部分。它負(fù)責(zé)接收用戶的輸入,展示處理結(jié)果。業(yè)務(wù)邏輯層(或中間層、服務(wù)器端應(yīng)用層):處理具體的業(yè)務(wù)邏輯,比如數(shù)據(jù)驗(yàn)證、計(jì)算等。這一層通常還包括數(shù)據(jù)訪問組件,用于封裝對數(shù)據(jù)的操作,但不直接訪問數(shù)據(jù)庫。數(shù)據(jù)訪問層(或數(shù)據(jù)庫服務(wù)器層):包含數(shù)據(jù)庫管理系統(tǒng),負(fù)責(zé)實(shí)際的數(shù)據(jù)存儲和檢索。這一層接收來自業(yè)務(wù)邏輯層的數(shù)據(jù)請求,執(zhí)行必要的數(shù)據(jù)庫操作,并返回結(jié)果給業(yè)務(wù)邏輯層。這樣的分層設(shè)計(jì)有助于提高系統(tǒng)的可維護(hù)性、可擴(kuò)展性和安全性。每一層都可以獨(dú)立地開發(fā)、測試和升級,而不會(huì)影響到其他層。數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)從應(yīng)用系統(tǒng)的體系結(jié)構(gòu)看,數(shù)據(jù)庫應(yīng)用系統(tǒng)的發(fā)展經(jīng)歷了單機(jī)模式、集中式模式和目前廣泛使用的分布式模式。分布式模式將用戶界面、業(yè)務(wù)功能和數(shù)據(jù)管理分開處理,常見的結(jié)構(gòu)如下:
客戶/服務(wù)器結(jié)構(gòu)(C/S結(jié)構(gòu))互聯(lián)網(wǎng)應(yīng)用結(jié)構(gòu)(B/S結(jié)構(gòu))客戶/服務(wù)器二層結(jié)構(gòu)數(shù)據(jù)庫服務(wù)器SQL請求請求結(jié)果工作站1工作站N工作站2客戶端應(yīng)用程序應(yīng)用程序應(yīng)用程序數(shù)據(jù)庫
二層客戶機(jī)/服務(wù)器模式是以網(wǎng)絡(luò)環(huán)境為基礎(chǔ)、將計(jì)算應(yīng)用有機(jī)地分布在多臺計(jì)算機(jī)中的結(jié)構(gòu)。服務(wù)器負(fù)責(zé)數(shù)據(jù)的存儲、檢索與維護(hù),而客戶機(jī)負(fù)責(zé)提供GUI接口,對于數(shù)據(jù)能夠完成創(chuàng)建、讀、修改、刪除(CRUD)等操作。
客戶/服務(wù)器二層結(jié)構(gòu)優(yōu)點(diǎn)主要表現(xiàn)在以下幾方面:(1)將應(yīng)用與服務(wù)分離,系統(tǒng)具有較好的穩(wěn)定性和靈活性。(2)客戶端與服務(wù)器在局域網(wǎng)內(nèi)直接連接,沒有中間環(huán)節(jié),因此響應(yīng)速度快。(3)客戶端和服務(wù)器通過網(wǎng)絡(luò)協(xié)議進(jìn)行通信,二者間存在邏輯聯(lián)系,因此物理上易于擴(kuò)充。缺點(diǎn)主要表現(xiàn)在以下幾方面:(1)系統(tǒng)兼容性弱。使用不同的開發(fā)工具時(shí),其具有較大的局限性,難以支持跨平臺和多個(gè)異構(gòu)數(shù)據(jù)庫。(2)系統(tǒng)維護(hù)成本高。每個(gè)客戶端都需要安裝和配置數(shù)據(jù)庫、客戶端軟件,一旦系統(tǒng)軟硬件發(fā)生變化,系統(tǒng)升級和維護(hù)比較困難。(3)系統(tǒng)用戶受限。若系統(tǒng)業(yè)務(wù)、數(shù)據(jù)處理功能復(fù)雜,通信易擁堵,難以支撐大量的客戶端??蛻?服務(wù)器三層結(jié)構(gòu)應(yīng)用服務(wù)器操作請求處理結(jié)果工作站1工作站N工作站2客戶端應(yīng)用程序數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫SQL請求請求結(jié)果對于一個(gè)具體的數(shù)據(jù)庫應(yīng)用系統(tǒng)來說,表示層所需的數(shù)據(jù)要從數(shù)據(jù)層即數(shù)據(jù)庫服務(wù)器取得,并在圖形化界面按一定的格式要求進(jìn)行展示。當(dāng)用戶的數(shù)據(jù)信息有誤時(shí),需通過鍵盤或鼠標(biāo)修改數(shù)據(jù)信息,執(zhí)行保存命令后,應(yīng)用服務(wù)器即業(yè)務(wù)層從表示層取得數(shù)據(jù)送往數(shù)據(jù)層進(jìn)行處理,數(shù)據(jù)層返回執(zhí)行結(jié)果給業(yè)務(wù)層,以確定修改操作執(zhí)行成功。通常業(yè)務(wù)層有確認(rèn)用戶對應(yīng)用和數(shù)據(jù)庫登錄和存取權(quán)限的功能。應(yīng)用服務(wù)器HTTP請求HTML代碼個(gè)人機(jī)1個(gè)人機(jī)N個(gè)人機(jī)2客戶端應(yīng)用程序數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫SQL請求請求結(jié)果瀏覽器瀏覽器瀏覽器基于B/S模式的體系結(jié)構(gòu)是一種以Web技術(shù)為基礎(chǔ)的系統(tǒng)結(jié)構(gòu),其中客戶端是標(biāo)準(zhǔn)的瀏覽器(,服務(wù)器為標(biāo)準(zhǔn)的Web服務(wù)器,協(xié)同應(yīng)用服務(wù)器響應(yīng)瀏覽器的請求。B/S模式結(jié)構(gòu)逐漸顯示其先進(jìn)性,當(dāng)今很多基于大型數(shù)據(jù)庫的應(yīng)用系統(tǒng)都采用了這種全新的模式結(jié)構(gòu)。瀏覽器/服務(wù)器三層結(jié)構(gòu)表示層:存在于客戶端,只須安裝一個(gè)Web瀏覽器軟件。Web服務(wù)器:作為一個(gè)HTTP服務(wù)器,處理HTTP協(xié)議,接受請求并按照HTTP格式生成響應(yīng);執(zhí)行服務(wù)器端腳本(如VBScript、JavaScript等);對于數(shù)據(jù)庫應(yīng)用,能夠執(zhí)行創(chuàng)建、讀、修改、刪除(CRUD)等操作。數(shù)據(jù)層:存在于數(shù)據(jù)庫服務(wù)器上,安裝有DBMS,提供SQL處理、數(shù)據(jù)庫管理等服務(wù)。瀏覽器/服務(wù)器三層結(jié)構(gòu)這種三層結(jié)構(gòu)的層與層之間相互獨(dú)立,任何一層的改變不會(huì)影響其他層的功能。這種結(jié)構(gòu)簡化了客戶端的工作,把事務(wù)處理邏輯部分分給了服務(wù)器,客戶端不再負(fù)責(zé)處理復(fù)雜計(jì)算和數(shù)據(jù)訪問等關(guān)鍵事務(wù),只負(fù)責(zé)顯示部分,變成了“瘦客戶端”,從沉重的負(fù)擔(dān)和不斷提高性能的要求中解放出來。另外,維護(hù)人員不需要再為每個(gè)客戶端上的程序的維護(hù)而奔波,只需要負(fù)責(zé)服務(wù)器程序的維護(hù)工作,從而也從繁重的維護(hù)、升級工作中解脫出來。數(shù)據(jù)庫訪問接口目前常用的數(shù)據(jù)庫的連接方法有:ADO、ADO.NETJDBC每種DBMS都有自己的專用接口,通過編程實(shí)現(xiàn)與某種數(shù)據(jù)庫專用接口的通信是一項(xiàng)比較復(fù)雜的任務(wù),為此,產(chǎn)生了開放的數(shù)據(jù)庫訪問接口技術(shù)。開放的數(shù)據(jù)庫訪問接口技術(shù)為數(shù)據(jù)庫應(yīng)用程序開發(fā)人員訪問不同類型的數(shù)據(jù)庫提供了統(tǒng)一的方式,通過編寫一段程序代碼調(diào)用這種接口就可實(shí)現(xiàn)對多種類型數(shù)據(jù)庫的復(fù)雜操作。
ADO是繼ODBC(OpenDataBaseConnectivity,開放式數(shù)據(jù)庫互連)之后微軟公司推出的數(shù)據(jù)庫訪問接口技術(shù),在VisualC++、VisualBasic、ASP等語言中廣泛使用。ADO包括6個(gè)類,即Connection、Command、Recordset、Errors、Parameters和Fields,對數(shù)據(jù)庫的操作都是通過這6個(gè)類的對象完成的。1.ADO數(shù)據(jù)庫訪問接口Connection對象要負(fù)責(zé)與數(shù)據(jù)庫建立連接和執(zhí)行SQL語句。Command對象主要執(zhí)行CRUD操作。RecordSet對象主要存放對數(shù)據(jù)庫表查詢的結(jié)果。數(shù)據(jù)庫訪問接口
ADO.NET是在.NET編程環(huán)境中使用的數(shù)據(jù)庫訪問接口技術(shù),由2個(gè)部分組成:數(shù)據(jù)提供程序(Provider)和數(shù)據(jù)集(DataSet)。數(shù)據(jù)提供程序主要包括Connection、Command、DataReader和DataAdapter這4個(gè)組件,數(shù)據(jù)庫應(yīng)用程序通過這些組件完成與數(shù)據(jù)庫服務(wù)器的連接、數(shù)據(jù)檢索和數(shù)據(jù)操作。數(shù)據(jù)集是數(shù)據(jù)表(DataTable)的集合,是數(shù)據(jù)庫中的數(shù)據(jù)在內(nèi)存中的副本,能在與數(shù)據(jù)庫斷開連接的情況下對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作。2.ADO.NET數(shù)據(jù)庫訪問接口
JDBC(JavaDatabaseConnectivity)是一個(gè)獨(dú)立于特定數(shù)據(jù)庫管理系統(tǒng)、通用的操作數(shù)據(jù)庫的Interface(一組API),定義了用來訪問數(shù)據(jù)庫的標(biāo)準(zhǔn)Java類庫,而接口的實(shí)現(xiàn)有各個(gè)數(shù)據(jù)庫廠商來完成JDBC驅(qū)動(dòng)程序(jar包):數(shù)據(jù)庫廠商對JDBC接口的一組實(shí)現(xiàn)類(jar包)3.JDBC數(shù)據(jù)庫訪問接口JDBC結(jié)構(gòu)模型數(shù)據(jù)庫訪問接口DriverManagerConnectionConnectionConnectionStatementPreparedStatementCallableStatementResultSetResultSetResultSetJDBCAPI接口介紹數(shù)據(jù)庫訪問接口Java操作MySQL數(shù)據(jù)庫Java在實(shí)際應(yīng)用中和數(shù)據(jù)庫有著密切的關(guān)系,Java編程工具以其諸多優(yōu)點(diǎn)而越來越受到程序開發(fā)人員的喜愛,其市場占有率越來越大,下面就以Java工具為例,來介紹JDBC在數(shù)據(jù)庫應(yīng)用開發(fā)中的關(guān)鍵技術(shù)。
JavaseJDBCAPIJDBC驅(qū)動(dòng)程序數(shù)據(jù)庫Java操作MySQL數(shù)據(jù)庫
Java連接數(shù)據(jù)庫并操作數(shù)據(jù)的步驟:
1.加載驅(qū)動(dòng)2.獲取數(shù)據(jù)庫連接3.獲取Statement對象4.操作數(shù)據(jù)庫5.獲取返回結(jié)果6.關(guān)閉對象Java操作MySQL數(shù)據(jù)庫
1.加載驅(qū)動(dòng)加載JDBC驅(qū)動(dòng)需調(diào)用Class類的靜態(tài)方法forName(),向其傳遞要加載的JDBC驅(qū)動(dòng)的類名。DriverManager類是驅(qū)動(dòng)程序管理器類,負(fù)責(zé)管理驅(qū)動(dòng)程序通常不用顯式調(diào)用DriverManager類的registerDriver()方法來注冊驅(qū)動(dòng)程序類的實(shí)例,因?yàn)镈river接口的實(shí)現(xiàn)類都包含了靜態(tài)代碼塊,在這個(gè)靜態(tài)代碼塊中,會(huì)調(diào)用DriverManager.registerDriver()方法來注冊自身的一個(gè)實(shí)例Java操作MySQL數(shù)據(jù)庫jdbc:mysql://localhost:3306/teaching_manage協(xié)議子協(xié)議子名稱主機(jī)地址端口號數(shù)據(jù)庫名2.獲取數(shù)據(jù)庫連接連接數(shù)據(jù)庫的URL:Java操作MySQL數(shù)據(jù)庫3.獲取Statement對象
數(shù)據(jù)庫連接被用于向數(shù)據(jù)庫服務(wù)器發(fā)送命令和SQL語句,在連接建立后,需要對數(shù)據(jù)庫進(jìn)行訪問,執(zhí)行sql語句在java.sql包中有3個(gè)接口分別定義了對數(shù)據(jù)庫的調(diào)用的不同方式:Statement:用于執(zhí)行不帶參數(shù)的SQL語句;PrepatedStatement:用于執(zhí)行帶或不帶IN參數(shù)的預(yù)編譯SQL語句;CallableStatement:用于執(zhí)行對數(shù)據(jù)庫已有存儲過程的調(diào)用。Java操作MySQL數(shù)據(jù)庫
Statement只是一個(gè)接口,沒有構(gòu)造方法,所以不能直接創(chuàng)建它的實(shí)例。但Connection接口提供了createStatement方法專門用于創(chuàng)建Statement對象:Statementstmt=con.createStatement();
創(chuàng)建Statement對象之后,就可以用于執(zhí)行SQL語句;Statement接口有4個(gè)基本的方法可以使用:(1)executeQuery:用于執(zhí)行查詢語句;(2)executeUpdate:用于執(zhí)行更新語句。4.操作數(shù)據(jù)Java操作MySQL數(shù)據(jù)庫5.獲取返回結(jié)果executeQuery():用于執(zhí)行產(chǎn)生單個(gè)結(jié)果集的SQL語句,返回的是查詢的結(jié)果集。(2)executeUpdate():用于執(zhí)行INSERT、UPDTE或DELETE語句以及數(shù)據(jù)定義語句,如CREATETABLE和DROPTABLE等。executeUpdate的返回值是一個(gè)整數(shù),表示受影響的行數(shù)。對于數(shù)據(jù)定義語句的返回值為零。
Java操作MySQL數(shù)據(jù)庫6.關(guān)閉對象原則:先開后關(guān)Java操作MySQL數(shù)據(jù)庫PreparedStatement
PreparedStatement是Statement的子接口,PreparedStatement的實(shí)例包含已編譯的SQL語句。由于PreparedStatement對象已預(yù)編譯過,所以其執(zhí)行速度要快于Statement對象。因此,多次執(zhí)行的SQL語句經(jīng)常創(chuàng)建為PreparedStatement對象,以提高效率。另外,PreparedStatement對象可以防止SQL注入。Java操作MySQL數(shù)據(jù)庫CRUD是指在做計(jì)算處理時(shí)的增加(Create)、讀取(Retrieve)(重新得到數(shù)據(jù)即查詢)、更新(Update)和刪除(Delete),主要被用在描述軟件系統(tǒng)中數(shù)據(jù)庫的基本操作功能數(shù)據(jù)庫的CRUD操作Java操作MySQL數(shù)據(jù)庫
用戶界面層
業(yè)務(wù)邏輯層
數(shù)據(jù)庫層ViewControlModelORM技術(shù)ORM是ObjectRelationalMapping的縮寫,譯為“對象關(guān)系映射”,是一種自動(dòng)生成SQL語句的技術(shù),它實(shí)現(xiàn)了對象和關(guān)系型數(shù)據(jù)庫之間的數(shù)據(jù)交互,提高了開發(fā)效率。在實(shí)際開發(fā)中,常見的增刪改查
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店集團(tuán)總經(jīng)理招聘考試題目解析
- 房地產(chǎn)經(jīng)紀(jì)人面試考核內(nèi)容與技巧
- 輕型安全掛鎖項(xiàng)目可行性研究報(bào)告(總投資17000萬元)(70畝)
- 深度解析(2026)《GBT 19215.4-2017電氣安裝用電纜槽管系統(tǒng) 第2部分:特殊要求 第4節(jié):輔助端 》
- 光伏模擬器項(xiàng)目可行性分析報(bào)告范文
- 汽車維修工面試問題與答案解析
- 技能培訓(xùn)師考試題庫
- 深度解析(2026)《GBT 18948-2017內(nèi)燃機(jī)冷卻系統(tǒng)用橡膠軟管和純膠管 規(guī)范》
- 深度解析(2026)《GBT 18839.3-2002涂覆涂料前鋼材表面處理 表面處理方法 手工和動(dòng)力工具清理》
- 深度解析(2026)GBT 18778.1-2002產(chǎn)品幾何量技術(shù)規(guī)范(GPS) 表面結(jié)構(gòu) 輪廓法 具有復(fù)合加工特征的表面 第1部分濾波和一般測量條件
- 紅日藥業(yè)醫(yī)學(xué)事務(wù)專員面試流程及題庫含答案
- 建筑工程管理??茖?shí)踐報(bào)告
- 2025年國家統(tǒng)計(jì)局齊齊哈爾調(diào)查隊(duì)公開招聘公益性崗位5人考試筆試備考試題及答案解析
- 兩棲及爬行動(dòng)物多樣性保護(hù)-洞察及研究
- 香港的勞動(dòng)合同范本
- 注銷公司股東協(xié)議書
- 如何進(jìn)行護(hù)理教學(xué)查房
- 2025重慶水務(wù)集團(tuán)股份有限公司招聘64人筆試考試參考試題及答案解析
- 安全月度工作匯報(bào)
- 糖尿病性腎病護(hù)理
- DB37-T 4441-2021 城市軌道交通互聯(lián)互通體系規(guī)范 PIS系統(tǒng)
評論
0/150
提交評論