在JSP中使用數(shù)據(jù)庫.ppt_第1頁
在JSP中使用數(shù)據(jù)庫.ppt_第2頁
在JSP中使用數(shù)據(jù)庫.ppt_第3頁
在JSP中使用數(shù)據(jù)庫.ppt_第4頁
在JSP中使用數(shù)據(jù)庫.ppt_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章 JSP中使用數(shù)據(jù)庫,在當今這一網(wǎng)絡技術(shù)蓬勃發(fā)展的時代,數(shù)據(jù)庫扮演了非常重要的角色;如果在服務器端沒有數(shù)據(jù)庫系統(tǒng)的支持,像搜索引擎、電子商務等Web應用程序就很難處理數(shù)量龐大的數(shù)據(jù),因此,Web應用程序一般都需要訪問數(shù)據(jù)庫?,F(xiàn)在最常用的是關(guān)系數(shù)據(jù)庫,JSP可以訪問多種不同的關(guān)系數(shù)據(jù)庫,如Oracle數(shù)據(jù)庫、SQL Server數(shù)據(jù)庫、DB2數(shù)據(jù)庫、MySQL數(shù)據(jù)庫和Microsoft Access數(shù)據(jù)庫等。在JSP頁面中,對數(shù)據(jù)庫的訪問一般都是通過JDBC進行的,它為數(shù)據(jù)庫應用開發(fā)人員提供了獨立于具體數(shù)據(jù)庫的數(shù)據(jù)庫訪問方法。,引言,教學目標,了解JDBC的相關(guān)概念 掌握使用JDBCODBC橋訪問數(shù)據(jù)庫 掌握使用加載純java數(shù)據(jù)庫驅(qū)動程序訪問數(shù)據(jù)庫 掌握常用SQL語句的使用,第7章在JSP中使用數(shù)據(jù)庫,本章大部分例子采用的模式是JSP+JavaBean模式,即JSP頁面調(diào)用bean來完成對數(shù)據(jù)庫的操作,使用的數(shù)據(jù)庫管理系統(tǒng)是SQL Server 2000。,7.1JDBC,JDBC是Java數(shù)據(jù)庫連接(Java DataBase Connectivity)的簡稱,由一組用Java語言編寫的類和接口組成,它們位于java.sql包中,提供了跨平臺的數(shù)據(jù)庫訪問方法,并且為數(shù)據(jù)庫應用開發(fā)人員提供了一種標準的應用程序設計接口(API)。,通過使用JDBC,開發(fā)人員可以很方便地將SQL語句傳送給幾乎任何一種數(shù)據(jù)庫。也就是說,開發(fā)人員可以不必寫一個程序訪問Sybase,寫另一個程序訪問Oracle,再寫一個程序訪問Microsoft的SQLServer。用JDBC寫的程序能夠自動地將SQL語句傳送給相應的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。在JSP程序中,程序員可以使用JDBC API將SQL語句發(fā)送到相應的任何一種數(shù)據(jù)庫,從而實現(xiàn)對數(shù)據(jù)庫的訪問。,7.1JDBC,7.1 JDBC,JDBC的基本功能 1.與一個數(shù)據(jù)庫建立連接。 2.向已連接的數(shù)據(jù)庫發(fā)送SQL語句。 3. 處理SQL語句返回的結(jié)果。 圖7.6,7.2數(shù)據(jù)庫連接的常用方式,1.一種常見方式是建立起一個JDBC-ODBC橋接器 2.另一種使用純Java數(shù)據(jù)庫驅(qū)動程序,7.3 使用JDBCODBC橋訪問數(shù)據(jù)庫,創(chuàng)建ODBC數(shù)據(jù)源 建立JDBCODBC橋接器 和ODBC數(shù)據(jù)源指定的數(shù)據(jù)庫建立連接,ODBC是由微軟開發(fā)的、目前用得最廣泛的訪問關(guān)系數(shù)據(jù)庫的API,它是用C語言實現(xiàn)的標準應用程序,用來在相關(guān)或不相關(guān)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)中存取數(shù)據(jù)的。通過ODBC API,應用程序可以存取保存在多種不同DBMS中的數(shù)據(jù),而不論每個DBMS使用了何種數(shù)據(jù)存儲格式和編程接口,它提供了連接幾乎任何一種平臺、任何一種數(shù)據(jù)庫的能力。事實上,JDBC通過JDBCODBC橋接器實現(xiàn)ODBC可以實現(xiàn)的所有的對數(shù)據(jù)庫的操作能力。 圖7.7-P131,7.3 使用JDBCODBC橋訪問數(shù)據(jù)庫,7.3.1創(chuàng)建ODBC數(shù)據(jù)源,要實現(xiàn)通過ODBC訪問數(shù)據(jù)庫,就必須首先為數(shù)據(jù)庫建立一個ODBC數(shù)據(jù)源,這樣數(shù)據(jù)庫才能實現(xiàn)和應用程序的交互。 單擊“開始” |“控制面板”菜單命令,打開“控制面板”窗口,然后在窗口中雙擊“管理工具”圖標,打開“管理工具”窗口,再雙擊“數(shù)據(jù)源(ODBC)”圖標,打開“ODBC數(shù)據(jù)源管理器”窗口,單擊“添加”按扭,打開“創(chuàng)建新數(shù)據(jù)源”窗口,然后即可創(chuàng)建數(shù)據(jù)源了。,7.3.2建立JDBCODBC橋接器,Try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); catch(ClassNotFoundException e) ,7.3.3與ODBC數(shù)據(jù)源指定的數(shù)據(jù)庫建立連接,Connection con =DriverManager.getConnection(“jdbc:odbc:數(shù)據(jù)源名字”,”login name”,”password”) 實例:showByJdbcOdbc.jsp,java.sql. DriverManager,該類負責加載、注冊JDBC驅(qū)動程序,管理應用程序和已注冊的驅(qū)動程序的連接。 public static Connection getConnection(String url, String user, String password) throws SQLException 試圖建立到給定數(shù)據(jù)庫 URL 的連接。DriverManager 試圖從已注冊的 JDBC 驅(qū)動程序集中選擇一個適當?shù)尿?qū)動程序。 參數(shù): url - jdbc:subprotocol:subname 形式的數(shù)據(jù)庫 url user - 數(shù)據(jù)庫用戶,連接是為該用戶建立的 password - 用戶的密碼 返回: 到 URL 的連接 拋出: SQLException - 如果發(fā)生數(shù)據(jù)庫訪問錯誤,java.sql.Connection,該接口代表數(shù)據(jù)庫連接,并擁有創(chuàng)建SQL語句的方法,以完成常規(guī)的SQL操作,并為數(shù)據(jù)庫事務處理提供提交和回滾方法。 Statement createStatement()返回一個Statement對象 Void close() 用于斷開連接,java.sql.Statement,它用來向數(shù)據(jù)庫提交SQL語句的執(zhí)行結(jié)果。 ResultSet executeQuery(String sql) 執(zhí)行給定的 SQL 語句,該語句返回單個 ResultSet 對象。,java.sql.ResultSet,在使用Statement中的executeQuery方法執(zhí)行SELECT查詢指令時,查詢的結(jié)果將會放在ResultSet中。,ResultSet表示數(shù)據(jù)庫結(jié)果集的數(shù)據(jù)表,通常通過執(zhí)行查詢數(shù)據(jù)庫的語句生成。 ResultSet 對象具有指向其當前數(shù)據(jù)行的光標。最初,光標被置于第一行之前。next 方法將光標移動到下一行;因為該方法在 ResultSet 對象沒有下一行時返回 false,所以可以在 while 循環(huán)中使用它來迭代結(jié)果集。 默認的 ResultSet 對象不可更新,僅有一個向前移動的光標。因此,只能迭代它一次,并且只能按從第一行到最后一行的順序進行。,java.sql.ResultSet,ResultSet 接口提供用于從當前行獲取列值的獲取 方法(getBoolean、getLong 等)??梢允褂昧械乃饕幪柣蛄械拿Q獲取值。一般情況下,使用列索引較為高效。列從 1 開始編號。為了獲得最大的可移植性,應該按從左到右的順序讀取每行中的結(jié)果集列,每列只能讀取一次。,java.sql.ResultSet,列名或列號可用于標識要從中獲取數(shù)據(jù)的列。例如,如果 ResultSet 對象 rs 的第二列名為“姓名”,并將值存儲為字符串,則下列任一代碼將獲取存儲在該列中的值: String s = rs.getString(“姓名“); String s = rs.getString(2);,java.sql.ResultSet,7.4 使用純Java數(shù)據(jù)庫驅(qū)動程序,準備工作:下載并安裝JDBC驅(qū)動程序 微軟推出的JDBC驅(qū)動程序SQL Server 2000 Driver for JDBC可以實現(xiàn)直接與SQL Server數(shù)據(jù)庫的連接,用戶可以到微軟的官方網(wǎng)站/downloads下載sqljdbc_1.1.1501.101_enu.exe。安裝后將enu子目錄下的sqljdbc.jar復制到jdkjrelibext下面。 另外還需要更新SQL server服務器.,7.4.1加載SQL的驅(qū)動,try Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver“).newInstance(); catch(Exception e) out.print(e); ,7.4.2和數(shù)據(jù)庫建立連接,try String uri= “jdbc:sqlserver:/:1433;DatabaseName=Student“; String user=“sa“; String password=“sa“; con=DriverManager.getConnection(uri,user,password); catch(SQLException e) 實例:showBySQLDriver.jsp,7.5查詢操作,與數(shù)據(jù)庫建立連接后,就可以使用JDBC提供的API和數(shù)據(jù)庫交互信息,如查詢、修改和更新數(shù)據(jù)庫中的表等。 創(chuàng)建Statement對象 Statement sql=con.createStatement(); sql對象就可以調(diào)用相應的方法,實現(xiàn)對數(shù)據(jù)庫中表的查詢和修改,并將查詢結(jié)果存放在一個ResultSet類聲明的對象中 ResultSet rs=sql.executeQuery(“SELECT * FROM score“);,7.5.1順序查詢,如何獲取數(shù)據(jù)庫中表的結(jié)構(gòu)信息呢? ResultSetMetaData可用于獲取關(guān)于 ResultSet 對象中列的類型和屬性信息 ResultSetMetaData rsmd = rs.getMetaData(); Int getColumnCount() 返

溫馨提示

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

評論

0/150

提交評論