freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

動態(tài)網(wǎng)頁技術(shù)ppt課件(2)-資料下載頁

2025-05-02 12:08本頁面
  

【正文】 應(yīng)商實(shí)現(xiàn) Connection 連接對象,用于與數(shù)據(jù)庫取得連接 Statement 語句對象,用于執(zhí)行 SQL語句,并將數(shù)據(jù)檢索到結(jié)果集( ResultSet)對象中 ResultSet 結(jié)果集對象,包含執(zhí)行 SQL語句后返回的數(shù)據(jù)的集合 SQLException 數(shù)據(jù)庫異常類,是其它 JDBC異常類的根類,絕大部分對數(shù)據(jù)庫進(jìn)行操作的方法都有可能拋出該異常 訪問數(shù)據(jù)庫的步驟 Connection DriverManager Statement ResultSet 加載 JDBC驅(qū)動程序 創(chuàng)建數(shù)據(jù)庫連接,生成 Connection對象 創(chuàng)建 Statement對象,執(zhí)行 SQL語句 使用 ResultSet對象接收結(jié)果集,處理結(jié)果集 關(guān)閉上述對象 服務(wù)器 數(shù)據(jù)庫服務(wù)器 1 2 3 4 ? 確定數(shù)據(jù)庫類型,加載與數(shù)據(jù)庫相匹配的驅(qū)動程序,通常有 2種方式: ? 在個人開發(fā)與測試中,可以使用 JDBCODBC橋連方式。 ? 在生產(chǎn)型開發(fā)中,推薦使用純 Java驅(qū)動方式。 ? 不論采用哪種驅(qū)動方式,在程序中對數(shù)據(jù)庫的操作方式基本相同,只是加載不同的驅(qū)動程序即可。 加載 JDBC驅(qū)動程序 DB Server DB Server JDBC API JDBC Driver Manager 純 Java 驅(qū)動 JDBC–ODBC橋 Java 應(yīng)用程序 ODBC 加載 JDBC驅(qū)動程序 ? 在控制面板 ?ODBC數(shù)據(jù)源 ?系統(tǒng) DSN中配置數(shù)據(jù)源。 ? 編程,使用 ()進(jìn)行裝載,向驅(qū)動管理器注冊。 使用 JDBCODBC橋接 ()。 演示:配置 ODBC數(shù)據(jù)源 JDBCODBC橋驅(qū)動類的完全限定類名 ? 由 JDBC驅(qū)動程序直接訪問數(shù)據(jù)庫,可以避免橋接方式的缺陷。其中,純 JAVA驅(qū)動程序由數(shù)據(jù)庫廠商提供,開發(fā)者在應(yīng)用程序中只需通過調(diào)用 JDBC API建立應(yīng)用程序到數(shù)據(jù)庫的連接。 ? 優(yōu)點(diǎn):匹配性能更好,快速而且可跨平臺。 ? 缺陷:訪問不同的數(shù)據(jù)庫需要下載專用的 JDBC驅(qū)動。 純 Java驅(qū)動程序 JDBC 驅(qū)動 Java 應(yīng)用程序 JDBC API DB Server ? 純 JAVA驅(qū)動程序加載步驟: ? 下載數(shù)據(jù)庫廠商提供的驅(qū)動程序包 ? 將驅(qū)動程序包引入到環(huán)境變量中 ? 編程,加載驅(qū)動程序 ( )。 sql server數(shù)據(jù)庫驅(qū)動類的完全限定類名 ( )。 MySQL數(shù)據(jù)庫驅(qū)動類的完全限定類名 純 Java驅(qū)動程序 ? 創(chuàng)建數(shù)據(jù)庫的連接,首先要獲得數(shù)據(jù)庫的 JDBC URL地址, JDBC使用和網(wǎng)絡(luò) URL類似的語法來描述數(shù)據(jù)庫。 ? JDBC URL 的格式如下: jdbc:子協(xié)議: 數(shù)據(jù)源名稱 ? 利用 JDBC/ODBC橋訪問 ODBC數(shù)據(jù)庫, JDBC URL如下: jdbc:odbc:test ? 訪問 SQL Server數(shù)據(jù)庫, JDBC URL如下: jdbc:microsoft: test ? 訪問 MySQL數(shù)據(jù)庫, JDBC URL如下: jdbc: 創(chuàng)建數(shù)據(jù)庫連接 ? 獲得 JDBC URL地址后,必須使用 DriverManager類的靜態(tài)方法getConnection來獲得連接對象; 方 法 原 型 說 明 static Connection getConnection (String url, String user, String password) throws SQLException 參數(shù) url是連接字符串,參數(shù) user是數(shù)據(jù)庫用戶名,參數(shù) password是登錄口令,成功連接到數(shù)據(jù)庫返回 Connection對象,連接失敗則拋出 SQLException異常,必須捕捉。 static Connection getConnection (String url) throws SQLException 參數(shù) url是連接字符串,成功連接到數(shù)據(jù)庫返回 Connection對象。 Connection conn=(DBURL,“root”,”123”)。 Connection conn=(DBURL)。 創(chuàng)建數(shù)據(jù)庫連接 ? 連接成功后,通過 Connection對象的 createStatement方法來創(chuàng)建語句對象,才可以執(zhí)行 SQL語句; ? 有三種 Statement 對象: ? Statement 對象用于執(zhí)行不帶參數(shù)的簡單 SQL語句; ? PreparedStatement 對象用于執(zhí)行帶或不帶參數(shù)的預(yù)編譯 SQL語句 ? CallableStatement 對象用于執(zhí)行對數(shù)據(jù)庫存儲過程的調(diào)用。 ? Statement對象提供了三種執(zhí)行 SQL語句的方法: ? executeQuery(): 用于產(chǎn)生單個結(jié)果集的 sql,如 select語句 ? executeUpdate: 用于執(zhí)行 insert、 delete、 update、 create table、 drop table等 ? execute(): 用于執(zhí)行返回多個結(jié)果集、多個更新計數(shù)或二者組合的語句,多數(shù)程序員不會需要該高級功能。 創(chuàng)建語句對象 Statement stmt=()。 String SQL=select * from user。 ResultSet rs=(SQL)。 處理結(jié)果集 ? JDBC通過 ResultSet對象接收結(jié)果集。 ResultSet對象包含了執(zhí)行 SQL語句后返回的結(jié)果集。結(jié)果集類似于數(shù)據(jù)庫中的表,因此需要一個指針逐行讀取數(shù)據(jù),這個指針被稱為游標(biāo)。在剛創(chuàng)建的 ResultSet對象中,游標(biāo)指向第一行數(shù)據(jù)前。 方 法 原 型 說 明 boolean next() throws SQLException 將光標(biāo)從當(dāng)前位置向前移一行 getXxx(int columnIndex) throws SQLException Xxx是數(shù)據(jù)類型,獲取結(jié)果集中指定列的值,列從 1開始。根據(jù)列的數(shù)據(jù)類型使用相應(yīng)的 getXxx方法 ResultSet rs=(SQL)。 while(()) {((1)+\t)。 ((2)+\t)。 ((3)+\t)。 } ? 前面的結(jié)果集只可以依次向下讀取數(shù)據(jù)。如果想要讀取結(jié)果集中任意一行,則必須創(chuàng)建一個可滾動顯示的結(jié)果集。代碼如下: ? 創(chuàng)建可滾動的結(jié)果集后,就可以調(diào)用下面的方法來獲取結(jié)果集中任意一行的數(shù)據(jù)。 first()、 last()、 beforefirst()、 afterlast()、previous()、 absolute(int row)、 relative()。 創(chuàng)建滾動結(jié)果集 Statement stmt=(L_SENSITIVE,)。 ? 當(dāng)對數(shù)據(jù)庫的操作結(jié)束后,應(yīng)當(dāng)將所有已經(jīng)被打開的資源關(guān)閉。 ? Connection對象、 Statement對象和 ResultSet對象都有執(zhí)行關(guān)閉的close方法。 ? 方法原型都是: void close() throws SQLException,如: ()。 //關(guān)閉 ResultSet對象 ()。 //關(guān)閉 Statement對象 ()。 //關(guān)閉 Connection對象 ? 有可能拋出 SQLException異常,必須捕捉。 ? 注意關(guān)閉的順序,最后打開的資源最先關(guān)閉,最先打開的資源最后關(guān)閉。 關(guān)閉資源 數(shù)據(jù)庫操作示例 JDBC程序的工作模板 try { (JDBC驅(qū)動類 )。 } catch (ClassNotFoundException e) { (無法找到驅(qū)動類 )。 } try { Connection con=(JDBC URL,數(shù)據(jù)庫用戶名 ,密碼 )。 Statement stmt = ()。 ResultSet rs = (SELECT a, b, c FROM Table1)。 while (()) { int x = (a)。 String s = (b)。 float f = (c)。 } ()。 } catch (SQLException e) { ()。 } 獲得數(shù)據(jù)庫連接 發(fā)送 Sql語句 處理結(jié)果 注冊 JDBC驅(qū)動 JDBC URL用來標(biāo)識數(shù)據(jù)庫 必須處理的異常 釋放資源 必須處理的異常 ? 更新數(shù)據(jù)庫可通過兩種方法實(shí)現(xiàn),一種是通過調(diào)用 Statement對象的executeUpdate()方法,一種是創(chuàng)建可更新的結(jié)果集。 ? 通過 SQL語句更新。如下所示: ? 通過結(jié)果集更新。首先要創(chuàng)建一個可更新的結(jié)果集。 更新數(shù)據(jù)庫 String SQL=“insert into 學(xué)生信息表(學(xué)號,姓名,年齡,系別) ”+”values(?1202?,?楊東平 ‘ , 20, ’計算機(jī) ‘ ); int rowCount=(SQL)。 Statement stmt=(L_SENSITIVE,)。 ? 如果要多次執(zhí)行相似的 SQL語句,可以使用PreparedStatemend(預(yù)編譯語句對象)對象來執(zhí)行; ? 通過 Connection對象的 prepareStatement方法來創(chuàng)建預(yù)編譯語句對象; ? PreparedStatement對象會將 SQL語句預(yù)先編譯,這樣將會獲得比 Statement對象更高的執(zhí)行效率。 方 法 原 型 說 明 PreparedStatement prepareStatement(String sql) throws SQLException 參數(shù) sql是要執(zhí)行的 SQL語句,根據(jù)指定的 SQL語句創(chuàng)建PrepareStatement對象,有可能拋異常,必須捕捉 使用預(yù)編譯 SQL語句 ? 包含在 PreparedStatement對象中的 SQL語句可以帶有一個或多個參數(shù),使用 “ ?”作為占位符,如 : PreparedStatement ps = (UPDATE Friends SET Address = ? WHERE Name = ?)。 ? 在執(zhí)行 SQL語句之前,必須使用 PreparedStatement對象中的 setX方法設(shè)置每個 “ ?”位置的參數(shù)值; ? 如: (1, 長沙 )。 (2, 王五 )。 方 法 原 型 說 明 void setX(int parameterIndex, X x) throws SQLException 將 parameterIndex指定的 “ ?”位置指定為 x的值,這里 X可以指代任意數(shù)據(jù)類型, “ ?”的索引從 1開始。 謝謝! 結(jié)束 休息一會兒。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1