JSP數據庫開發基礎知識_第1頁
JSP數據庫開發基礎知識_第2頁
JSP數據庫開發基礎知識_第3頁
JSP數據庫開發基礎知識_第4頁
JSP數據庫開發基礎知識_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

7.1JSP數據庫開發環境搭建工欲善其事,必先利其器。要進行數據庫的開發,第一步要做的工作就是安裝數據庫軟件,目前常用的數據庫有MySQL、SQL,Oracle、DB2等,在本章我們以MySQL和SQLServer2000的安裝過程為例,簡單介紹JSP數據庫開發環境的搭建過程。7.1.1MySQL數據庫的安裝MySQL的安裝程序可以從http://www.mysql.com網站上下載,目前的版本是5.0.41,下載下來的安裝文件為mysql-essential-5.0.41-win32.msi。直接運行這個文件就可以進行安裝,MySQL提供了圖形界面的安裝向導,根據安裝向導的提示,可以非常方便的安裝MySQL。下面簡單介紹MySQL的安裝步驟。(具體內容請參照書。)7.1.2SQLServer2000數據庫安裝SQLServer2000的安裝過程更加簡便,在安裝向導的提示可以非常方便進行安裝,在這里不在對SQLServer的安裝過程進行詳細的介紹。7.2SQL基礎在與數據庫交互的過程中,可以使用各種語言,例如Java、C#甚至是C語言,但是所有這些語言并不是直接操作數據庫,而是通過向數據庫傳遞SQL語句來實踐數據的操作,SQL語言才是直接處理數據庫的語言,在目前常用的關系數據庫中,都支持SQL語言的操作。7.2.1創建和刪除數據庫創建數據庫的SQL語句如下。CREATEDATABASE數據庫名稱(具體內容請參照書。)7.2.2創建、修改、刪除數據庫表創建數據庫表可以是用CREATETABLE指令,這個指令的使用語法如下。CREATETABLE表名(列名1數據類型[DEFAULT(默認值)][NOTNULL][UNIQUE],列名2數據類型[DEFAULT(默認值)][NOTNULL][UNIQUE]……………[PRIMARYKEY(列名)][FOREIGNKEY(列名)REFERENCES(表名)])7.2.3查詢語句在數據庫操作中,查詢數據的方式有很多,包括基本的查詢、選擇性查詢、限制條件查詢、統計查詢、多表聯合查詢等查詢操作,在接下來的內容中將逐步介紹這些基本的查詢操作。(具體內容請參照書。)7.2.4插入、更新、刪除語句在本部分的內容中,將介紹表格中數據的基本操作,包括數據的插入、更新和刪除操作。(具體內容請參照書。)7.2.5簡單視圖操作視圖是虛擬的表,其功能和基本的數據庫表類似,但是在視圖中并不存儲數據,視圖僅僅是把實際表格中的數據按照條件提取出來,以表格的形式展示出來,從而方便用戶的查詢,其實在這個虛擬的表格中并沒有任何物理上存儲的數據,其中的數據都是從其他表格中提出出來的。(具體內容請參照書。)7.2.6簡單存儲過程操作存儲過程(StoredProcedure)是一段可以完成特定功能的SQL語句,它經過編譯后存儲在數據庫中,用戶通過名稱調用指定的存儲過程,如果這個存儲過程中帶有參數,在調用的時候需要提供對應的參數輸入。(具體內容請參照書。)7.3JSP與數據庫建立連接一般來說,使用JSP操作數據庫都需要下面三個步驟。(1)根據提供的驅動程序名加載對應的數據庫驅動程序。(2)根據連接字符串,從DriverManager中取的與數據庫的連接。(3)在取得的Connection數據庫對象基礎上進行各種數據操作。7.3.1JSP連接SQLServer2000數據庫JSP連接SQLServer的時候,需要提供SQLServer的數據庫驅動,在這里可以有兩種選擇,一種是微軟官方提供的數據庫驅動,另一中是開源的JTDS驅動,在這里我們選擇微軟廣方提供的JDBC數據庫驅動程序。(具體內容請參照書。)7.3.2JSP連接MySQL數據庫JSP連接MySQL數據庫的時候,同樣也需要數據庫驅動,MySQL的驅動程序名為MySQLConnector/J,讀者可以在http://dev.mysql.com/downloads/上找到各個版本的驅動程序。這個驅動無需安裝,直接解壓下載下來的文件,把拷貝到應用項目的/WEB-INF/lib目錄中,就可以在JSP中同通過這個JDBC驅動連接MySQL數據庫,這個數據庫驅動的名稱和連接字符串如表7.2所示。7.3.3JSP連接Oracle數據庫Oracle為不同版本的數據庫提供了不同的JDBC驅動程序,可以在Oracle的官方網站上下面這個鏈接下載對應版本的驅動程序。(具體內容請參照書。)7.3.4JSP連接數據庫簡單示例上面介紹了JSP連接常見的幾種數據庫開發環境的基本配置,(具體內容請參照書。)7.4JSP操作數據庫在以上的內容中,介紹了JSP數據庫開發的準備知識,在接下來的內容中,將使用這些基礎知識進行數據庫的操作,操作的數據庫選擇在前面章節中已經創建的STUDENTS數據庫。在本節的內容中,首先介紹數據庫最簡單最基本的增刪改查操作,在了解這些基本知識的基礎上引入數據庫事務操作的概念,最后介紹兩中具有實用價值的技術。視圖和存儲過程,這是數據庫操作水平進一步提高所必須掌握的。7.4.1JSP插入數據操作在執行數據的插入操作時,首先要建立與數據庫的連接,然后把SQL語句傳遞到數據庫中,通過SQL語句來操作數據庫中的數據。在下面的示例程序中,將向student表中插入一條記錄,具體代碼如下。(具體內容請參照書。)7.4.2JSP刪除數據操作在JSP中,刪除數據的操作和插入數據的操作很相似,不同之處只是執行的SQL語句不同,在下面的示例程序中,將從student表中刪除滿足條件的記錄,(具體內容請參照書。)7.4.3JSP更新數據庫操作在數據庫的更新操作中,并沒有新的知識點,數據庫的連接和操作的方法和前面數據庫插入刪除操作的方法是一樣的,不同之處就是在這里執行的是更新數據庫的SQL語句,在下面的示例程序中,將更新數據庫中符合條件的數據記錄,(具體內容請參照書。)7.4.4JSP查詢數據庫操作在數據庫的查詢操作中,可以通過數據庫連接執行SQL查詢語句,返回的結果是ResultSet結果集對象,可以在程序中取出并展示結果集中的數據,在下面的示例程序中,將從student表中取出滿足條件的數據,并以表格的形式展示取出的結果,(具體內容請參照書。)7.4.5JSP中的數據庫操作事務處理在數據庫操作中,事務處理是經常用到的,例如在銀行的業務中,甲方給乙方賬戶轉賬10萬人民幣,首先要從甲方的賬戶減去10萬,然后再給乙方的賬戶增加10萬,整個操作過程是一個整體,這就是一個簡單的事務,在這個事務中必須保證操作的完整性,兩步操作要么全執行,如果其中一步出錯全都不執行,從而保證這個業務的正確性和完整性。(具體內容請參照書。)7.4.6JSP查詢視圖視圖是一種虛擬表,所以視圖的查詢和表格的查詢方法一樣,無非是在這里把表格名稱換成視圖的名稱,在SQL語法介紹中,我們創建了一個名為V_STUDENTS的視圖,在下面這個示例程序中將與對這個視圖進行簡單的查詢,(具體內容請參照書。)7.4.7JSP調用存儲過程在本書的7.2.6小節中,分兩種情況介紹了存儲過程的創建方法,所以在這里也分為兩種情況介紹存儲過程的調用方法,包括調用無參數的存儲過程和調用有參數的存儲過程。(具體內容請參照書。)7.5數據庫連接池在大量數據庫訪問的應用系統中,數據庫處理的速度往往會成為系統性能的瓶頸,數據庫資源的處理不當往往會給系統的性能帶來很大的影響,嚴重的情況下甚至可以導致整個系統的癱瘓,在本節的內容中將會詳細介紹數據庫資源的利用問題。7.5.1數據庫開發中面臨的數據庫資源問題在數據庫應用程序的開發中,經常會遇到數據庫資源的問題,一般情況下有一下幾種情況。1.普通的JDBC連接帶來的效率問題2.數據庫資源使用不當帶來的性能問題7.5.2數據庫連接池的工作原理數據庫連接池就是在系統初始化的時候,建立起一定數量的數據庫連接,然后通過一套數據庫連接的使用、分配、管理策略,使數據庫連接可以得到高效、安全的復用,避免了頻繁建立、關閉數據庫連接帶來的系統開銷,另外,使用數據庫連接池可以把系統的邏輯實現和數據庫分離,在傳統的實現過程種,是在應用程序中直接訪問數據庫,使用連接池以后,所有的數據庫連接都可以從連接池中取出,由連接池訪問數據庫,維持連接池中可用連接的數量。7.5.3常用的數據庫連接池簡介在實際的開發中,可以選擇自己實現一個連接池,但是一般情況下我們會選擇第三方提供的程序的連接池產品,目前有很多成熟的連接池可以選擇。7.5.4在Tomcat中配置DBCP數據庫連接池在Tomcat中配置DBCP數據庫連接池的方法有很多,但是配置都相對比較繁瑣,在這里提供一種比較簡單的DBCP連接池的配置方法。(具體內容請參照書。)7.5.5從連接池中取得連接示例通過上節的配置,已經可以在程序中使用DBCP連接池的功能,在下面的實例程序中,將在一個JSP頁面中調用DBCP的功能,從連接池中取出一個數據庫連接,(具體內容請參照書。)7.5.6測試連接池設置是否生效在上面的實例程序中,僅僅展示了從連接池中取出連接的情況,但是還沒有測試連接池是否可以正常釋放資源,這一點是很多開發人員容易忽視的問題,一般情況下,很多開發人員只要可以從連接池中取出連接就認為連接池已經配置成功,然后就開始在程序中使用連接池的功能,這種做法往往在埋下錯誤的隱患。7.5.7使用DBCP自動回收數據庫連接資源在進行數據庫操作的時候,數據庫的連接是必須釋放的,連接池的最大功能是維護一定數量的連接,從而節省建立、關閉數據庫連接的時間,在程序中調用的數據庫連接是必須關閉的,只有關閉以后,這個連接才會被釋放到連接池中,從而可以供其他程序使用。(具體內容請參照書。)7.6數據庫訪問的代碼優化通過前面章節中的介紹,讀者可以對數據庫的基本操作有了一個整體的認識,利用這些基本知識,讀者可以進行基本的數據庫操作,在本章前面的所有示例程序中,展示的都是最基本的數據庫訪問操作,目的是讓讀者能夠不受其他因素的干擾,專注于數據庫操作功能的實現。但是,從可復用、從軟件架構的方面、從軟件的升級維護等方面來看,這些是遠遠不夠的,在接下來的內容中,將深入剖析數據庫操作更深層次的知識,試讀者可以在技術層面有一個質的飛越。7.6.1最原始的數據庫訪問代碼示例在上面的所以例子中,都需要使用下面這段代碼來建立與數據庫的連接。7.6.2初步優化――數據庫配置信息基礎類在這種原始的數據庫訪問操作中,更改數據庫的配置信息是非常麻煩的。現在可以考慮這樣的處理方法,把數據庫的配置信息用常量表示,所有的數據庫配置信息都可以放在一個類中,具體實現方式如下。(具體內容請參照書。)7.6.3進一步優化――數據庫配置文件為了解決用常量表示數據庫配置信息帶來的問題,避免重新編譯部署應用項目,就需要把數據庫配置的信息從Java類中提出出來,在這里我們屬性文件來代替描述常量的類,經過這樣的處理就可以避免重新編譯、部署應用系統的問題。7.6.4繼續優化――數據庫訪問操作類的封裝在前面的幾節內容中,對如何合理組織數據庫配置信息進行了簡單的結束,但是在這些示例程序中我們可以看出,取得數據庫連接的依然要重復操作,同樣需要加載數據庫驅動類、取得連接和進行數據庫操作這些步驟,在每個需要數據庫操作的地方都要重復這樣的代碼,那么有沒有方法避免這些代碼的重復?答案就是對這些代碼進行封裝。(具體內容請參照書。)7.6.5更進一步優化――DAO類封裝數據庫操作在進行本節內容的介紹之前,先來看下面這段代碼。(具體內容請參照書。)7.6.6追求完美的優化――添加視圖、存儲過程在上面介紹的各項優化措施中,都是從軟件工程方面考慮,對程序的代碼進行科學的優化,單是這些措施并不涉及數據庫操作的性能問題,在接下來的內容中,將對數據庫操作的性能問題進行探討。數據庫操作性能的要求,一般情況下在需要大量數據庫操作的項目種會顯得特別迫切。在提升數據庫性能方面可以通過合理涉及數據庫結構和SQL優化等措施,但這些都不是本節中要討論的主題,本章的側重點是

溫馨提示

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

評論

0/150

提交評論