版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第21章 學(xué)生信息管理Java數(shù)據(jù)庫(kù)編程吉娜燁辦公室: 第一實(shí)驗(yàn)樓304郵箱: 手機(jī): 1373800060221.1 能力目標(biāo)能使用JDBC建立數(shù)據(jù)庫(kù)連接能編寫Java代碼連接數(shù)據(jù)庫(kù)并讀取數(shù)據(jù)庫(kù)記錄例:使用Java輸出數(shù)據(jù)庫(kù)中內(nèi)容 local數(shù)據(jù)庫(kù)服務(wù)器,用戶Administrator,密碼:123456 驅(qū)動(dòng)sun.jdbc.odbc.JdbcOdbcDriver 建立名為Studb的學(xué)生數(shù)據(jù)庫(kù),內(nèi)有stus數(shù)據(jù)表,表中有字段:學(xué)號(hào)、姓名、性別、專業(yè)和年級(jí)2016-06-08Java程序設(shè)計(jì)221.2 DBMSDBMS(Database Management System) 數(shù)據(jù)庫(kù)管理系統(tǒng)
2、,通常指管理數(shù)據(jù)庫(kù)的軟件 SQL Server Access Oracle MySQL 2016-06-08Java程序設(shè)計(jì)321.3.1 JDBC簡(jiǎn)介JDBC(Java Database Connectivity) 是Java運(yùn)行平臺(tái)的核心類庫(kù)中的一部分,提供了訪問(wèn)數(shù)據(jù)庫(kù)的API,它由一些Java類接口組成。 在Java中可以使用JDBC實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中表記錄的查詢、修改和刪除等操作。2016-06-08Java程序設(shè)計(jì)421.3.2 JDBC-ODBC橋接器JDBC-ODBC(Open Database Connectivity) 加載JDBC-ODBC橋驅(qū)動(dòng)程序可以在應(yīng)用程序和數(shù)據(jù)庫(kù)之間建
3、立連接。 使用JDBC-ODBC橋接器方式的機(jī)制是,應(yīng)用程序只需建立JDBC和ODBC(Open Database Connectivity, 開放式數(shù)據(jù)庫(kù)連接)之間的連接,即所謂的JDBC-ODBC橋接器,而與數(shù)據(jù)的連接由ODBC去完成。 需要注意的是,ODBC使用“數(shù)據(jù)源”來(lái)管理數(shù)據(jù)庫(kù),所以必須事先將某個(gè)數(shù)據(jù)庫(kù)設(shè)置為ODBC所管理的一個(gè)數(shù)據(jù)源,應(yīng)用程序只能請(qǐng)求與ODBC所管理的數(shù)據(jù)源建立連接。2016-06-08Java程序設(shè)計(jì)521.3.2 JDBC-ODBC橋接器(cont.)2016-06-08Java程序設(shè)計(jì)621.4.1 數(shù)據(jù)庫(kù)編程步驟1.建立數(shù)據(jù)庫(kù);2.創(chuàng)建數(shù)據(jù)源;3.加載JD
4、BC-ODBC橋驅(qū)動(dòng)程序;4.通過(guò)數(shù)據(jù)源建立數(shù)據(jù)庫(kù)連接;5.由連接創(chuàng)建語(yǔ)句對(duì)象;6.通過(guò)語(yǔ)句對(duì)象執(zhí)行SQL語(yǔ)句;7.處理結(jié)果集;8.關(guān)閉結(jié)果集、語(yǔ)句和連接對(duì)象;9.捕獲、處理異常。2016-06-08Java程序設(shè)計(jì)71、建立數(shù)據(jù)庫(kù)在DBMS上建立數(shù)據(jù)庫(kù)操作直觀、界面友好、互動(dòng)性強(qiáng)SQL腳本建立數(shù)據(jù)庫(kù)保存SQL腳本為createstudb.sql在命令行窗口中進(jìn)入文件目錄,輸入命令運(yùn)行腳本,生成學(xué)生數(shù)據(jù)庫(kù)Studb.mdf創(chuàng)建了數(shù)據(jù)庫(kù)Studb創(chuàng)建了數(shù)據(jù)表Stus2016-06-08Java程序設(shè)計(jì)82、創(chuàng)建數(shù)據(jù)源(1)2016-06-08Java程序設(shè)計(jì)9創(chuàng)建、刪除、修改數(shù)據(jù)源 選擇“控制面
5、板”“管理工具”“ODBC數(shù)據(jù)源”,雙擊ODBC數(shù)據(jù)源圖標(biāo),出現(xiàn)如下圖所示界面,該界面顯示了用戶已有的數(shù)據(jù)源的名稱2、創(chuàng)建數(shù)據(jù)源(2)2016-06-08Java程序設(shè)計(jì)10選擇“用戶DSN”,單擊“添加”按鈕,可以創(chuàng)建新的數(shù)據(jù)源;單擊“配置”按鈕,可以重新配置已有的數(shù)據(jù)源;單擊“刪除”按鈕可以刪除已有的數(shù)據(jù)源。單擊“添加”按鈕,進(jìn)入下一步為數(shù)據(jù)源選擇驅(qū)動(dòng)程序。為數(shù)據(jù)源選擇驅(qū)動(dòng)程序2、創(chuàng)建數(shù)據(jù)源(3)設(shè)置數(shù)據(jù)源名稱及位置2016-06-08Java程序設(shè)計(jì)112016-06-08Java程序設(shè)計(jì)122、創(chuàng)建數(shù)據(jù)源(4)2016-06-08Java程序設(shè)計(jì)132、創(chuàng)建數(shù)據(jù)源(5)2016-06-
6、08Java程序設(shè)計(jì)142、創(chuàng)建數(shù)據(jù)源(6)3、加載JDBC-ODBC橋驅(qū)動(dòng)程序JDBC使用java.lang包中的Class類建立JDBC-ODBC橋接器。Class類通過(guò)調(diào)用其靜態(tài)方法forName()加載sun.jdbc.odbc包中的JdbcOdbcDriver類建立JDBC-ODBC橋接器。2016-06-08Java程序設(shè)計(jì)15import java.sql.*; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException e) System.out.println(e);4、通過(guò)數(shù)據(jù)源
7、建立數(shù)據(jù)庫(kù)連接通過(guò)數(shù)據(jù)源StuDSN與學(xué)生數(shù)據(jù)庫(kù)Studb建立連接2016-06-08Java程序設(shè)計(jì)16try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); /上面是加載JDBC-ODBC橋驅(qū)動(dòng)程序的語(yǔ)句,也可省略該語(yǔ)句 Connection conn=DriverManager.getConnection(jdbc:odbc:StuDSN); /建立連接catch(Exception e) /捕獲、處理異常 System.out.println(異常: + e);Connection, DriverManagerConnection 連接接口,位
8、于java.sql包 連接對(duì)象只能通過(guò)DriverManager類的getConnection方法建立DriverManager 驅(qū)動(dòng)程序管理器類,位于java.sql包 靜態(tài)方法 Connection getConnection(String url) 建立與給定數(shù)據(jù)庫(kù)url的連接 url是統(tǒng)一資源定位形式的連接字符串 jdbc:子協(xié)議:子名稱2016-06-08Java程序設(shè)計(jì)175、由連接創(chuàng)建語(yǔ)句對(duì)象Statement是接口類型2016-06-08Java程序設(shè)計(jì)18try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); /上面是加載JDBC-O
9、DBC橋驅(qū)動(dòng)程序的語(yǔ)句,也可省略該語(yǔ)句 Connection conn=DriverManager.getConnection(jdbc:odbc:StuDSN); /建立連接 Statement stmt=conn.createStatement(); /連接創(chuàng)建語(yǔ)句catch(Exception e) /捕獲、處理異常 System.out.println(異常: + e);Statement接口Statement 接口類型,位于java.sql包; 只能通過(guò)Connection對(duì)象的createStatement方法創(chuàng)建語(yǔ)句對(duì)象; 語(yǔ)句對(duì)象用于執(zhí)行靜態(tài)的SQL語(yǔ)句,執(zhí)行后或返回Resul
10、tSet類型的結(jié)果集,或返回int,boolean等數(shù)據(jù); 執(zhí)行SQL查詢語(yǔ)句方法 executeQuery(); 關(guān)閉,釋放資源語(yǔ)句close()。2016-06-08Java程序設(shè)計(jì)19PreparedStatement接口PreparedStatement 接口類型,位于java.sql包; 只能通過(guò)Connection對(duì)象的perparedStatement方法創(chuàng)建對(duì)象; 預(yù)編譯SQL語(yǔ)句對(duì)象余弦編譯一條SQL語(yǔ)句,可以反復(fù)運(yùn)行,可“動(dòng)態(tài)”地執(zhí)行SQL語(yǔ)句。2016-06-08Java程序設(shè)計(jì)206、通過(guò)語(yǔ)句對(duì)象執(zhí)行SQL語(yǔ)句ResultSet也是接口類型2016-06-08Java程
11、序設(shè)計(jì)21try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); /上面是加載JDBC-ODBC橋驅(qū)動(dòng)程序的語(yǔ)句,也可省略該語(yǔ)句 Connection conn=DriverManager.getConnection(jdbc:odbc:StuDSN); /建立連接 Statement stmt=conn.createStatement(); /連接創(chuàng)建語(yǔ)句 ResultSet rs=stmt.executeQuery(select * from Stus); /語(yǔ)句執(zhí)行查詢,得到結(jié)果集catch(Exception e) /捕獲、處理異常 Syste
12、m.out.println(異常: + e);7、處理結(jié)果集2016-06-08Java程序設(shè)計(jì)22try ResultSet rs=stmt.executeQuery(select * from Stus); /語(yǔ)句執(zhí)行查詢,得到結(jié)果集System.out.println(=學(xué)號(hào)=姓名=性別=專業(yè)=年級(jí)=);while(rs.next() /循環(huán)輸出結(jié)果集各行內(nèi)容System.out.print(rs.getString(1) + t); /字段(列)序號(hào)從1開始System.out.print(rs.getString(2) + t);System.out.print(rs.getStri
13、ng(3) + t);System.out.print(rs.getString(4) + t);System.out.println(rs.getInt(5);catch(Exception e) /捕獲、處理異常 ResultSet接口ResultSet 接口類型,位于java.sql包; 只能通過(guò)執(zhí)行語(yǔ)句或預(yù)編譯語(yǔ)句的executeQuery等方法創(chuàng)建結(jié)果集對(duì)象; 指向當(dāng)前數(shù)據(jù)行(記錄)的光標(biāo)(游標(biāo)),next()方法移動(dòng)光標(biāo),依次訪問(wèn)各行數(shù)據(jù); 從當(dāng)前行獲取列值 getString(),getInt()等方法; 關(guān)閉結(jié)果集 close()方法。2016-06-08Java程序設(shè)計(jì)238
14、、關(guān)閉結(jié)果集、語(yǔ)句和連接對(duì)象2016-06-08Java程序設(shè)計(jì)24try Connection conn=DriverManager.getConnection(jdbc:odbc:StuDSN); /建立連接 Statement stmt=conn.createStatement(); /連接創(chuàng)建語(yǔ)句 ResultSet rs=stmt.executeQuery(select * from Stus); rs.close(); /關(guān)閉結(jié)果集 stmt.close(); /關(guān)閉語(yǔ)句 conn.close(); /關(guān)閉連接catch(Exception e) /捕獲、處理異常 System.out.println(異常: + e);小結(jié):Java數(shù)據(jù)庫(kù)編程步驟1.建立數(shù)據(jù)庫(kù);2.創(chuàng)建數(shù)據(jù)源;3.加
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 瓷器五大領(lǐng)域課程設(shè)計(jì)
- 音樂(lè)盒課課程設(shè)計(jì)
- 自然課程設(shè)計(jì)的要素
- 材料專業(yè)理論課程設(shè)計(jì)
- 課課程設(shè)計(jì)書寫格式
- 除塵系統(tǒng)課程設(shè)計(jì)
- 練臀課程設(shè)計(jì)
- 軸套機(jī)械設(shè)計(jì)課程設(shè)計(jì)
- 銷售系統(tǒng)的課課程設(shè)計(jì)
- 調(diào)頻電路課程設(shè)計(jì)報(bào)告
- 綿陽(yáng)市高中2022級(jí)(2025屆)高三第二次診斷性考試(二診)歷史試卷(含答案)
- 《視頻壓縮基礎(chǔ)》課件
- 2025南方財(cái)經(jīng)全媒體集團(tuán)校園招聘63人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《A機(jī)場(chǎng)公司人力資源管理工作實(shí)踐調(diào)研報(bào)告》2600字(論文)
- 社工人才培訓(xùn)計(jì)劃實(shí)施方案
- 四年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)及答案
- 6、水平四+田徑18課時(shí)大單元計(jì)劃-《雙手頭上前擲實(shí)心球》
- 幼兒園人民幣啟蒙教育方案
- 軍事理論(2024年版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 青島版科學(xué)四年級(jí)下冊(cè)課程綱要
- GB/T 6672-2001塑料薄膜和薄片厚度測(cè)定機(jī)械測(cè)量法
評(píng)論
0/150
提交評(píng)論