JSP實用教程第6章連接數(shù)據(jù)庫_第1頁
JSP實用教程第6章連接數(shù)據(jù)庫_第2頁
JSP實用教程第6章連接數(shù)據(jù)庫_第3頁
JSP實用教程第6章連接數(shù)據(jù)庫_第4頁
JSP實用教程第6章連接數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、JSP實用教程第6章連接數(shù)據(jù)庫第6章 連接數(shù)據(jù)庫數(shù)據(jù)庫概述SQL介紹JDBC技術MySQL數(shù)據(jù)庫連接到不同的數(shù)據(jù)庫數(shù)據(jù)庫應用實例第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.1 數(shù)據(jù)庫概述 可以把數(shù)據(jù)庫看作是一種存儲數(shù)據(jù)的方法,數(shù)據(jù)庫模型包括層次模型、網(wǎng)狀模型、關系模型和對象模型。 目前最常見的數(shù)據(jù)庫是關系數(shù)據(jù)庫,市場上使用較多的關系數(shù)據(jù)庫產(chǎn)品有:Oracle、DB2、SQL Server、Sybase、MySQL等。 第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.2 SQL介紹SQL全名為Structured Query Language。ANSI(美國國家標準學會)聲稱,SQL

2、是關系數(shù)據(jù)庫管理系統(tǒng)的標準語言。SQL通常用于完成一些數(shù)據(jù)庫的操作任務 。包括以下常見操作:創(chuàng)建數(shù)據(jù)庫創(chuàng)建表插入數(shù)據(jù)查詢數(shù)據(jù)從表中刪除數(shù)據(jù)更新表中的數(shù)據(jù)第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.3 JDBC技術 6.3.1 JDBC介紹介紹 6.3.2 JDBC的結構的結構 6.3.3 JDBC驅動程序驅動程序 6.3.4 JDBC常用接口常用接口第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.3.1 JDBC介紹 JDBC(Java Database Connectivity):Java數(shù)據(jù)庫連接,是Java程序與數(shù)據(jù)庫系統(tǒng)通信的標準API。 由一組用Java語言編寫的類和接口

3、組成 JDBC可以做三件事與數(shù)據(jù)庫建立連接發(fā)送SQL語句處理結果第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.3.2 JDBC結構圖Java應用程序JDBC APIJDBC驅動程序管理器JDBC驅動程序JDBC驅動程序JDBC驅動程序數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.3.3 JDBC驅動程序 4種類型的驅動程序 類型1驅動程序:JDBC-ODBC橋,通過ODBC數(shù)據(jù)源進行與數(shù)據(jù)庫的連接 類型2驅動程序:直接將應用程序與網(wǎng)絡庫連接的驅動程序 類型3驅動程序:通過中間件服務器與數(shù)據(jù)庫建立連接的驅動程序 類型4驅動程序:直接與數(shù)據(jù)庫相連的純Java驅動程序第

4、6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.3.4 JDBC的常用接口 java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫JDBC的主要接口 java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet任何驅動程序類都應該實現(xiàn)這個接口。讀取數(shù)據(jù)庫驅動器的信息、提供conn

5、ect方法用于建立訪問數(shù)據(jù)庫所用的Connection對象第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫JDBC的主要接口 java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet用于管理JDBC驅動程序一個接口(使用此接口能夠獲得與相應數(shù)據(jù)庫的連接)第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫JDBC的主要接口 java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Sta

6、tement java.sql.ResultSet表示驅動程序與數(shù)據(jù)庫之間的連接。(使用此連接可以創(chuàng)建一個Statement對象)第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫JDBC的主要接口 java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet能對數(shù)據(jù)庫執(zhí)行SQL語句,并得到返回的結果。第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫JDBC的主要接口 java.sql.Driver java.sql.DriverManager java.sql.C

7、onnection java.sql.Statement java.sql.ResultSet表示從數(shù)據(jù)庫服務器返回的結果集。第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4 連接MySQL數(shù)據(jù)庫用JDBC連接數(shù)據(jù)庫存取數(shù)據(jù)時,必須執(zhí)行以下三個步驟:用DriverManager加載及注冊適當?shù)腏DBC驅動程序;用JDBC URL定義驅動程序與數(shù)據(jù)源之間的連接,并且建立一個連接對象;建立一個SQL陳述式對象(Statement Object),并且利用它來執(zhí)行SQL語句。 第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.1 在JSP中使用JDBC連接數(shù)據(jù)庫 在編寫數(shù)據(jù)庫應用程序之前

8、,首先需要找到所要連接的數(shù)據(jù)庫的驅動程序,MySQL的驅動程序稱為Connector/J,讀者可以在MySQL的官方網(wǎng)站上免費取得,網(wǎng)址如下:,或者直接使用光盤內(nèi)附的驅動程序。 這里使用Connector/J 3.1.10作為本書范例的JDBC驅動程序,文件名為mysql-connector-java-3.1.10-bin.jar,將 JDBC驅動程序部署到TOMCAT的COMMONLIB目錄下,注意,部署完后一定要重新啟動TOMCAT服務器。第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.1 在JSP中使用JDBC連接數(shù)據(jù)庫 下面例程實現(xiàn)向student表中插入一條記錄的功能,本例程

9、使用jsp_db數(shù)據(jù)庫和student表。其源代碼在本書配套光盤的 源代碼ch6-1目錄下。 該例程的運行結果見下圖。第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.1 在JSP中使用JDBC連接數(shù)據(jù)庫 學生信息表(student) 字段名類型長度是否是主鍵描述sidvarchar30是學號namevarchar30否姓名sexint1否性別,0代表女,1代表男phonevarchar16否聯(lián)系電話birthdate8否出生日期第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.1 在JSP中使用JDBC連接數(shù)據(jù)庫在在JSP中使用中使用JDBC連接連接MYSQL數(shù)據(jù)庫數(shù)據(jù)庫 tes

10、tdb.jsp源代碼源代碼在JSP中使用JDBC連接MYSQL數(shù)據(jù)庫插入數(shù)據(jù)第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.2 中文問題的處理 在編寫數(shù)據(jù)庫應用程序的時候,往往會遇到中文問題,例如上一節(jié)我們舉了在數(shù)據(jù)庫表中插入記錄的例子,如果讀者修改程序,將插入的數(shù)據(jù)改為中文,就會發(fā)現(xiàn)插入到表中的數(shù)據(jù)變成了亂碼。有時候,即使表中的數(shù)據(jù)都是正常的中文,但從表中查詢出來顯示到頁面上的卻是亂碼。這都是由于使用的字符集不一致引起的,本節(jié)我們舉個例子說明如何解決這個問題。第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.2 中文問題的處理 下面例程實現(xiàn)學生信息錄入與瀏覽,我們?nèi)匀徊捎脭?shù)據(jù)庫

11、jsp_db,以及表student。 本例的程序文件列表如表所示。序號文件名文件類型功能描述1insert.html頁面學生信息錄入頁面2insert.jsp頁面將錄入的學生信息插入到student表中,并從student表中查詢所有記錄,顯示在頁面上第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.2 中文問題的處理 運行界面:第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.3 在JavaBean中使用JDBC連接數(shù)據(jù)庫 下面例程實現(xiàn)對student表的增加、查詢、修改、和刪除操作,文件結構如下:序文件名文件類型功能描述1index.html頁面顯示主菜單2addStudent

12、.jsp頁面添加學生信息頁面3addStudent_do.jsp頁面調(diào)用StudentBean的相應方法處理添加操作4deleteStudent.jsp頁面列出所有學生,選擇要刪除的學生5deleteStudent_do.jsp頁面調(diào)用StudentBean的相應方法處理刪除操作6modifyStudent.jsp頁面列出所有學生,選擇要修改的學生7modifyStudent_pro.jsp頁面修改學生信息頁面8modifyStudent_do.jsp頁面調(diào)用StudentBean的相應方法處理修改操作9viewStudent.jsp頁面顯示所有學生的信息10searchStudentBySi

13、d.jsp頁面根據(jù)學號查詢學生,顯示查詢結果11DataBaseConnection.javaJava Bean連接數(shù)據(jù)庫12Student.javaJava Bean封裝學生信息的bean13StudentUtil.javaJava Bean實現(xiàn)對學生信息的增、刪、改、查操作第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.3 在JavaBean中使用JDBC連接數(shù)據(jù)庫 系統(tǒng)運行界面:主菜單頁面 第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.3 在JavaBean中使用JDBC連接數(shù)據(jù)庫 系統(tǒng)運行界面:添加學生信息頁面 第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.

14、3 在JavaBean中使用JDBC連接數(shù)據(jù)庫 系統(tǒng)運行界面:刪除學生信息頁面 第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.3 在JavaBean中使用JDBC連接數(shù)據(jù)庫 系統(tǒng)運行界面:修改學生信息頁面 第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.3 在JavaBean中使用JDBC連接數(shù)據(jù)庫 系統(tǒng)運行界面:查詢學生信息結果頁面 第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.4.4 連接池技術 連接池技術的原理是在WEB服務器啟動的時候就與數(shù)據(jù)庫建立很多的Connection連接對象,并將它們存儲起來,就象一個連接池,需要的時候就從連接池中取出一個連接,使用完畢后

15、再釋放回連接池,讓JSP與數(shù)據(jù)庫之間能夠獲得最大的執(zhí)行效率。第6章 連接數(shù)據(jù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.5 連接到不同的數(shù)據(jù)庫 1、連接到Oracle我們使用Thin模式連接Oracle,將驅動程序包classes12.jar部署到應用程序的WEB-INFlib下。Class.forName(oracle.jdbc.driver.OracleDriver).newInstance(); String url=jdbc:oracle:thin:127.0.0.1:1521:orcl; /orcl為所連接數(shù)據(jù)庫的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ù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.5 連接到不同的數(shù)據(jù)庫 2、連接到MS SQLServer將驅動程序包mssqlserver.jar、msbase.jar、msutil.jar部署到應用程序的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ù)庫的名稱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ù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.5 連接到不同的數(shù)據(jù)庫 3、連接到DB2將驅動程序包:db2java.zip文件,部署到應用程序的WEB-INFlib下。Class.forName(com.ibm.db2.jdbc.app.DB2Driver ).newInstance(); String url=jdbc:db2:/127.0.0.1:5000/sample; /sample為所連接的數(shù)據(jù)庫的名稱 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ù)庫JSP實用教程第6章連接數(shù)據(jù)庫6.6 數(shù)據(jù)庫應用實例 網(wǎng)上購物程序文件結構: 序號文件名文件類型功能描述1login.jsp頁面用戶登錄2logout.jsp頁面用戶注銷3reg.jsp頁面用戶注冊4booklist

溫馨提示

  • 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

提交評論