




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)第6章 連接數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)概述SQL介紹JDBC技術(shù)MySQL數(shù)據(jù)庫(kù)連接到不同的數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)應(yīng)用實(shí)例第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.1 數(shù)據(jù)庫(kù)概述 可以把數(shù)據(jù)庫(kù)看作是一種存儲(chǔ)數(shù)據(jù)的方法,數(shù)據(jù)庫(kù)模型包括層次模型、網(wǎng)狀模型、關(guān)系模型和對(duì)象模型。 目前最常見(jiàn)的數(shù)據(jù)庫(kù)是關(guān)系數(shù)據(jù)庫(kù),市場(chǎng)上使用較多的關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品有:Oracle、DB2、SQL Server、Sybase、MySQL等。 第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.2 SQL介紹SQL全名為Structured Query Language。ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì))聲稱,SQL
2、是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL通常用于完成一些數(shù)據(jù)庫(kù)的操作任務(wù) 。包括以下常見(jiàn)操作:創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建表插入數(shù)據(jù)查詢數(shù)據(jù)從表中刪除數(shù)據(jù)更新表中的數(shù)據(jù)第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.3 JDBC技術(shù) 6.3.1 JDBC介紹介紹 6.3.2 JDBC的結(jié)構(gòu)的結(jié)構(gòu) 6.3.3 JDBC驅(qū)動(dòng)程序驅(qū)動(dòng)程序 6.3.4 JDBC常用接口常用接口第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.3.1 JDBC介紹 JDBC(Java Database Connectivity):Java數(shù)據(jù)庫(kù)連接,是Java程序與數(shù)據(jù)庫(kù)系統(tǒng)通信的標(biāo)準(zhǔn)API。 由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口
3、組成 JDBC可以做三件事與數(shù)據(jù)庫(kù)建立連接發(fā)送SQL語(yǔ)句處理結(jié)果第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.3.2 JDBC結(jié)構(gòu)圖Java應(yīng)用程序JDBC APIJDBC驅(qū)動(dòng)程序管理器JDBC驅(qū)動(dòng)程序JDBC驅(qū)動(dòng)程序JDBC驅(qū)動(dòng)程序數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.3.3 JDBC驅(qū)動(dòng)程序 4種類(lèi)型的驅(qū)動(dòng)程序 類(lèi)型1驅(qū)動(dòng)程序:JDBC-ODBC橋,通過(guò)ODBC數(shù)據(jù)源進(jìn)行與數(shù)據(jù)庫(kù)的連接 類(lèi)型2驅(qū)動(dòng)程序:直接將應(yīng)用程序與網(wǎng)絡(luò)庫(kù)連接的驅(qū)動(dòng)程序 類(lèi)型3驅(qū)動(dòng)程序:通過(guò)中間件服務(wù)器與數(shù)據(jù)庫(kù)建立連接的驅(qū)動(dòng)程序 類(lèi)型4驅(qū)動(dòng)程序:直接與數(shù)據(jù)庫(kù)相連的純Java驅(qū)動(dòng)程序第
4、6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.3.4 JDBC的常用接口 java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)JDBC的主要接口 java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet任何驅(qū)動(dòng)程序類(lèi)都應(yīng)該實(shí)現(xiàn)這個(gè)接口。讀取數(shù)據(jù)庫(kù)驅(qū)動(dòng)器的信息、提供conn
5、ect方法用于建立訪問(wèn)數(shù)據(jù)庫(kù)所用的Connection對(duì)象第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)JDBC的主要接口 java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet用于管理JDBC驅(qū)動(dòng)程序一個(gè)接口(使用此接口能夠獲得與相應(yīng)數(shù)據(jù)庫(kù)的連接)第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)JDBC的主要接口 java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Sta
6、tement java.sql.ResultSet表示驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)之間的連接。(使用此連接可以創(chuàng)建一個(gè)Statement對(duì)象)第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)JDBC的主要接口 java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet能對(duì)數(shù)據(jù)庫(kù)執(zhí)行SQL語(yǔ)句,并得到返回的結(jié)果。第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)JDBC的主要接口 java.sql.Driver java.sql.DriverManager java.sql.C
7、onnection java.sql.Statement java.sql.ResultSet表示從數(shù)據(jù)庫(kù)服務(wù)器返回的結(jié)果集。第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4 連接MySQL數(shù)據(jù)庫(kù)用JDBC連接數(shù)據(jù)庫(kù)存取數(shù)據(jù)時(shí),必須執(zhí)行以下三個(gè)步驟:用DriverManager加載及注冊(cè)適當(dāng)?shù)腏DBC驅(qū)動(dòng)程序;用JDBC URL定義驅(qū)動(dòng)程序與數(shù)據(jù)源之間的連接,并且建立一個(gè)連接對(duì)象;建立一個(gè)SQL陳述式對(duì)象(Statement Object),并且利用它來(lái)執(zhí)行SQL語(yǔ)句。 第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.1 在JSP中使用JDBC連接數(shù)據(jù)庫(kù) 在編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序之前
8、,首先需要找到所要連接的數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序,MySQL的驅(qū)動(dòng)程序稱為Connector/J,讀者可以在MySQL的官方網(wǎng)站上免費(fèi)取得,網(wǎng)址如下:,或者直接使用光盤(pán)內(nèi)附的驅(qū)動(dòng)程序。 這里使用Connector/J 3.1.10作為本書(shū)范例的JDBC驅(qū)動(dòng)程序,文件名為mysql-connector-java-3.1.10-bin.jar,將 JDBC驅(qū)動(dòng)程序部署到TOMCAT的COMMONLIB目錄下,注意,部署完后一定要重新啟動(dòng)TOMCAT服務(wù)器。第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.1 在JSP中使用JDBC連接數(shù)據(jù)庫(kù) 下面例程實(shí)現(xiàn)向student表中插入一條記錄的功能,本例程
9、使用jsp_db數(shù)據(jù)庫(kù)和student表。其源代碼在本書(shū)配套光盤(pán)的 源代碼ch6-1目錄下。 該例程的運(yùn)行結(jié)果見(jiàn)下圖。第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.1 在JSP中使用JDBC連接數(shù)據(jù)庫(kù) 學(xué)生信息表(student) 字段名類(lèi)型長(zhǎng)度是否是主鍵描述sidvarchar30是學(xué)號(hào)namevarchar30否姓名sexint1否性別,0代表女,1代表男phonevarchar16否聯(lián)系電話birthdate8否出生日期第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.1 在JSP中使用JDBC連接數(shù)據(jù)庫(kù)在在JSP中使用中使用JDBC連接連接MYSQL數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) tes
10、tdb.jsp源代碼源代碼在JSP中使用JDBC連接MYSQL數(shù)據(jù)庫(kù)插入數(shù)據(jù)第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.2 中文問(wèn)題的處理 在編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序的時(shí)候,往往會(huì)遇到中文問(wèn)題,例如上一節(jié)我們舉了在數(shù)據(jù)庫(kù)表中插入記錄的例子,如果讀者修改程序,將插入的數(shù)據(jù)改為中文,就會(huì)發(fā)現(xiàn)插入到表中的數(shù)據(jù)變成了亂碼。有時(shí)候,即使表中的數(shù)據(jù)都是正常的中文,但從表中查詢出來(lái)顯示到頁(yè)面上的卻是亂碼。這都是由于使用的字符集不一致引起的,本節(jié)我們舉個(gè)例子說(shuō)明如何解決這個(gè)問(wèn)題。第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.2 中文問(wèn)題的處理 下面例程實(shí)現(xiàn)學(xué)生信息錄入與瀏覽,我們?nèi)匀徊捎脭?shù)據(jù)庫(kù)
11、jsp_db,以及表student。 本例的程序文件列表如表所示。序號(hào)文件名文件類(lèi)型功能描述1insert.html頁(yè)面學(xué)生信息錄入頁(yè)面2insert.jsp頁(yè)面將錄入的學(xué)生信息插入到student表中,并從student表中查詢所有記錄,顯示在頁(yè)面上第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.2 中文問(wèn)題的處理 運(yùn)行界面:第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.3 在JavaBean中使用JDBC連接數(shù)據(jù)庫(kù) 下面例程實(shí)現(xiàn)對(duì)student表的增加、查詢、修改、和刪除操作,文件結(jié)構(gòu)如下:序文件名文件類(lèi)型功能描述1index.html頁(yè)面顯示主菜單2addStudent
12、.jsp頁(yè)面添加學(xué)生信息頁(yè)面3addStudent_do.jsp頁(yè)面調(diào)用StudentBean的相應(yīng)方法處理添加操作4deleteStudent.jsp頁(yè)面列出所有學(xué)生,選擇要?jiǎng)h除的學(xué)生5deleteStudent_do.jsp頁(yè)面調(diào)用StudentBean的相應(yīng)方法處理刪除操作6modifyStudent.jsp頁(yè)面列出所有學(xué)生,選擇要修改的學(xué)生7modifyStudent_pro.jsp頁(yè)面修改學(xué)生信息頁(yè)面8modifyStudent_do.jsp頁(yè)面調(diào)用StudentBean的相應(yīng)方法處理修改操作9viewStudent.jsp頁(yè)面顯示所有學(xué)生的信息10searchStudentBySi
13、d.jsp頁(yè)面根據(jù)學(xué)號(hào)查詢學(xué)生,顯示查詢結(jié)果11DataBaseConnection.javaJava Bean連接數(shù)據(jù)庫(kù)12Student.javaJava Bean封裝學(xué)生信息的bean13StudentUtil.javaJava Bean實(shí)現(xiàn)對(duì)學(xué)生信息的增、刪、改、查操作第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.3 在JavaBean中使用JDBC連接數(shù)據(jù)庫(kù) 系統(tǒng)運(yùn)行界面:主菜單頁(yè)面 第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.3 在JavaBean中使用JDBC連接數(shù)據(jù)庫(kù) 系統(tǒng)運(yùn)行界面:添加學(xué)生信息頁(yè)面 第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.
14、3 在JavaBean中使用JDBC連接數(shù)據(jù)庫(kù) 系統(tǒng)運(yùn)行界面:刪除學(xué)生信息頁(yè)面 第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.3 在JavaBean中使用JDBC連接數(shù)據(jù)庫(kù) 系統(tǒng)運(yùn)行界面:修改學(xué)生信息頁(yè)面 第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.3 在JavaBean中使用JDBC連接數(shù)據(jù)庫(kù) 系統(tǒng)運(yùn)行界面:查詢學(xué)生信息結(jié)果頁(yè)面 第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.4.4 連接池技術(shù) 連接池技術(shù)的原理是在WEB服務(wù)器啟動(dòng)的時(shí)候就與數(shù)據(jù)庫(kù)建立很多的Connection連接對(duì)象,并將它們存儲(chǔ)起來(lái),就象一個(gè)連接池,需要的時(shí)候就從連接池中取出一個(gè)連接,使用完畢后
15、再釋放回連接池,讓JSP與數(shù)據(jù)庫(kù)之間能夠獲得最大的執(zhí)行效率。第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.5 連接到不同的數(shù)據(jù)庫(kù) 1、連接到Oracle我們使用Thin模式連接Oracle,將驅(qū)動(dòng)程序包c(diǎn)lasses12.jar部署到應(yīng)用程序的WEB-INFlib下。Class.forName(oracle.jdbc.driver.OracleDriver).newInstance(); String url=jdbc:oracle:thin:127.0.0.1:1521:orcl; /orcl為所連接數(shù)據(jù)庫(kù)的SID String user=scott;String password=t
16、iger;Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.5 連接到不同的數(shù)據(jù)庫(kù) 2、連接到MS SQLServer將驅(qū)動(dòng)程序包mssqlserver.jar、msbase.jar、msutil.jar部署到應(yīng)用程序的WEB-INFlib下。Class.forName(c
17、om.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance(); String url=jdbc:microsoft:sqlserver:/127.0.0.1:1433;DatabaseName=pubs; /pubs為所連接的數(shù)據(jù)庫(kù)的名稱String user=sa;String password=;Connection conn= DriverManager.getConnection(url,user,password);Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL
18、_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.5 連接到不同的數(shù)據(jù)庫(kù) 3、連接到DB2將驅(qū)動(dòng)程序包:db2java.zip文件,部署到應(yīng)用程序的WEB-INFlib下。Class.forName(com.ibm.db2.jdbc.app.DB2Driver ).newInstance(); String url=jdbc:db2:/127.0.0.1:5000/sample; /sample為所連接的數(shù)據(jù)庫(kù)的名稱 String user=admin; String password=; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 第6章 連接數(shù)據(jù)庫(kù)JSP實(shí)用教程第6章連接數(shù)據(jù)庫(kù)6.6 數(shù)據(jù)庫(kù)應(yīng)用實(shí)例 網(wǎng)上購(gòu)物程序文件結(jié)構(gòu): 序號(hào)文件名文件類(lèi)型功能描述1login.jsp頁(yè)面用戶登錄2logout.jsp頁(yè)面用戶注銷(xiāo)3reg.jsp頁(yè)面用戶注冊(cè)4booklist
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣西廣電大數(shù)據(jù)科技有限公司春季招聘9人筆試參考題庫(kù)附帶答案詳解
- 2025年合肥市醫(yī)療器械檢驗(yàn)檢測(cè)中心有限公司社會(huì)招聘11人筆試參考題庫(kù)附帶答案詳解
- 食品鏈追溯體系試題及答案
- 義烏市精神文明創(chuàng)建促進(jìn)中心選調(diào)考試真題2024
- 上海煙草機(jī)械有限責(zé)任公司招聘考試真題2024
- 2025天津東疆綜合保稅區(qū)管理委員會(huì)招聘10人筆試參考題庫(kù)附帶答案詳解
- 2025四川九洲防控科技有限責(zé)任公司招聘黨建干事等崗位36人筆試參考題庫(kù)附帶答案詳解
- Writing a short message(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教版英語(yǔ)八年級(jí)上冊(cè)
- 2024重慶三峰環(huán)境集團(tuán)股份有限公司招聘15人筆試參考題庫(kù)附帶答案詳解
- Module3 Unit 2 How many green birds(教學(xué)設(shè)計(jì))-2023-2024學(xué)年外研版(一起)英語(yǔ)一年級(jí)下冊(cè)
- 壓裂施工安全操作規(guī)定(正式)
- 生理衛(wèi)生教學(xué)【青春期男生性教育】走向成熟課件
- 人工呼吸的三種方式和操作方法課件
- 項(xiàng)目基坑坍塌事故專(zhuān)項(xiàng)應(yīng)急預(yù)案桌面演練腳本
- 無(wú)創(chuàng)通氣常用模式與參數(shù)調(diào)節(jié)
- 清遠(yuǎn)市城市樹(shù)木修剪技術(shù)指引(試行)
- GB∕T 8427-2019 紡織品 色牢度試驗(yàn) 耐人造光色牢度:氙弧
- 退休人員實(shí)行社區(qū)管理申請(qǐng)書(shū)
- 全國(guó)同等學(xué)力工商管理大綱重點(diǎn)整理
- 機(jī)耕道監(jiān)理實(shí)施細(xì)則完整
評(píng)論
0/150
提交評(píng)論