《Java數(shù)據(jù)庫(kù)連接(JDBC).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《Java數(shù)據(jù)庫(kù)連接(JDBC).ppt(27頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第 8章: Java數(shù)據(jù)庫(kù)連接 8.1 JDBC概述 ODBC( Open Database Connectivity,開(kāi)放數(shù)據(jù) 庫(kù)互聯(lián)) JDBC( Java Database Connectivity , Java數(shù)據(jù) 庫(kù)連接) JDBC-ODBC Bridge( JDBC-ODBC 橋接器) JDBC-ODBC相關(guān)類(lèi) JDBC中最重要的部分是定義了一系列的抽象接口 , 通過(guò)這些接口 , JDBC實(shí) 現(xiàn)了三個(gè)基本的功能:建立與數(shù)據(jù)的連接 、 執(zhí)行 SQL聲明和處理執(zhí)行結(jié)果 。 這些接口都存在 Java的 sql包中,它們的名稱(chēng)和基本功能是: java.sql
2、.DriverMagnager:用于處理驅(qū)動(dòng)程序的加載和建立新數(shù)據(jù)庫(kù)連接 java.sql.Connection:用于處理與特定數(shù)據(jù)庫(kù)的連接 java.sql.Statement:用于在指定連接中處理 SQL語(yǔ)句 java.sql.PreparedStatement: Statement的子類(lèi),用于處理預(yù)編譯的 SQL 語(yǔ)句 java.sql.ResultSet:用于處理數(shù)據(jù)庫(kù)操作結(jié)果集 8.2 JDBCODBC編程 Java通過(guò) JDBC-ODBC Bridge訪問(wèn)數(shù)據(jù)庫(kù)的一 般為以下 5個(gè)步驟 : 1、創(chuàng)建指定數(shù)據(jù)庫(kù)的 URL 要建立與數(shù)據(jù)庫(kù)的連接,首先要?jiǎng)?chuàng)建指
3、定數(shù)據(jù)庫(kù)的 URL。 URL的一般形式如下: String url=jdbc:odbc:數(shù)據(jù)源的名字 ; 2、加載驅(qū)動(dòng)程序 為了連接具體的數(shù)據(jù)庫(kù), JDBC必須首先加載該數(shù)據(jù)庫(kù)的 相應(yīng)驅(qū)動(dòng)程序,程序代碼形式如下: Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); 8.2 JDBCODBC編程 3、創(chuàng)建連接 Connection Con = java.sql.DriverManager.getConnection(“數(shù)據(jù)庫(kù) 的 URL”, “登陸數(shù)據(jù)庫(kù)用戶名” , “用戶口令” ); 4、創(chuàng)建 SQL語(yǔ)句對(duì)象 Stateme
4、nt stmt=con.createStatement(); 5、執(zhí)行查詢(xún)、處理查詢(xún)結(jié)果 ResultSet rs=stmt.executeUpdate(“SQL語(yǔ)句的內(nèi)容” ); 設(shè)置數(shù)據(jù)源 ( 1)用 Access建立一個(gè)數(shù)據(jù)庫(kù) student.mdb,在庫(kù)中 建一個(gè)表 chengjibiao; (2)配置 ODBC數(shù)據(jù)源,打開(kāi)“控制面板 --管理工具 -- ODBC源”,添加 Microsoft Access Driver; (3)數(shù)據(jù)源名稱(chēng): mydb 要連接的數(shù)據(jù)庫(kù): student 登陸用戶名: 密碼: 運(yùn)行結(jié)果: 可滾動(dòng)結(jié)果集 我們用 ResultS
5、et對(duì)象的 next( )方法順序查 詢(xún)數(shù)據(jù),但如果我們需要前后移動(dòng)、或顯 示結(jié)果集指定的一條記錄時(shí),需要得到一 個(gè)可滾動(dòng)的結(jié)果集。 Statement st=con.createStatement(int type,int concurrency); Type的取值決定滾動(dòng)方式; concurrency的 取值決定是否可用結(jié)果集更新數(shù)據(jù)庫(kù)。 可滾動(dòng)結(jié)果集 type: ResultSet.TYPE_FORWARD_ONLY;游標(biāo)只能 向下滾動(dòng)。 ResultSet.TYPE_SCROLL_INSENSITIVE;游標(biāo) 能上下滾動(dòng),數(shù)據(jù)庫(kù)變化時(shí),當(dāng)前結(jié)果集不變。 Resul
6、tSet.TYPE_SCROLL_SENSITIVE;游標(biāo)能 上下滾動(dòng),數(shù)據(jù)庫(kù)變化時(shí),當(dāng)前結(jié)果集同步改變。 可滾動(dòng)結(jié)果集 concurrency: ResultSet.CONCUR_READ_ONLY; ResultSet.CONCUR_UPDATABLE; 滾動(dòng)查詢(xún)常用到的 ResultSet方法 public boolean previous() afterLast(); beforeFirst(); first(); last(); isAfterLast(); isBeforeFirst(); public int getRow(); 例子 排序查詢(xún)
7、 在 SQL語(yǔ)句中使用 Order By語(yǔ)句,以得到 排好序的記錄。 模糊查詢(xún) 用 %代替一個(gè)或多個(gè)字符; 用 _代替一個(gè)字符; 10.7 更新、添加、刪除記錄 Statement對(duì)象調(diào)用方法: executeUpdate(String sqlstatement); 更新用到的 sql語(yǔ)句: update chengjibiao set 數(shù)學(xué) =100 where 姓名 =王二 添加記錄用到的 sql語(yǔ)句: insert into chengjibiao values(arg,arg); 刪除記錄用到的 sql語(yǔ)句: delete from chengji
8、biao where 姓名 =王二 補(bǔ)充:常用 SQL語(yǔ)句 數(shù)據(jù)定義語(yǔ)句: create table employee(name varchar(5), sex char(1),address varchar(30)); drop table employee; create index name on employ; drop index; 8.4 開(kāi)發(fā)一個(gè)小型的數(shù)據(jù)庫(kù)管理系統(tǒng) 8.4.1 可行性分析和需求分析 系統(tǒng)登錄 為保證系統(tǒng)的安全性,用戶需要經(jīng)過(guò)身份驗(yàn)證才能登錄系統(tǒng)。 信息更新 信息更新包括學(xué)生信息、教師信息、考試成績(jī)?nèi)糠?,能夠?qū)崿F(xiàn)各種信息記錄的增
9、加、 修改,信息更新非常方便簡(jiǎn)捷。 信息查詢(xún) 信息查詢(xún)包括基本信息、成績(jī)明細(xì)、學(xué)分查詢(xún)?nèi)糠郑脩艨梢愿鶕?jù)不同需要查詢(xún)到 不同學(xué)生基本信息和成績(jī)、學(xué)分信息等。 信息統(tǒng)計(jì) 信息統(tǒng)計(jì)包括成績(jī)統(tǒng)計(jì)、學(xué)分統(tǒng)計(jì)兩部分。根據(jù)配置條件統(tǒng)計(jì)出優(yōu)秀的學(xué)生以及學(xué)分 是否修滿等信息。 系統(tǒng)管理 系統(tǒng)管理包括系統(tǒng)配置、退出系統(tǒng)兩部分。用戶可以在系統(tǒng)配置部分中靈活設(shè)置學(xué)生 所需學(xué)分的標(biāo)準(zhǔn)。 8.4.2 系統(tǒng)功能結(jié)構(gòu)圖 課本 161頁(yè)圖 8.11 8.4.3 數(shù)據(jù)庫(kù)設(shè)計(jì) 本系統(tǒng)采用 SQL Server 2000數(shù)據(jù)庫(kù),其數(shù)據(jù)庫(kù)的名稱(chēng)為 Student, 數(shù)據(jù)庫(kù) Student中包含
10、了 6個(gè)表,學(xué)生信息表 Student_Info、教師信 息表 Teacher_Info、學(xué)生成績(jī)表 Grade_Info、學(xué)生課程科目表 Subject_Info、系統(tǒng)配置表 Config_Info和用戶信息表 User_Info。 下面是 在 SQL Server 2000中,本系統(tǒng)的 數(shù)據(jù)庫(kù) Student包含的各表。 課本 161 163頁(yè)的各表 8.4.4 系統(tǒng)設(shè)計(jì)和代碼實(shí)現(xiàn) 操作數(shù)據(jù)庫(kù)的公共模塊類(lèi) 1. ConnDB.java 2. LoginDB.java 3. StuInfoDB.java 4. TeaInfoDB.java 5. SubInf
11、oDB.java 6. ExaInfoDB.java 7. ConfInfoDB.java 系統(tǒng)登陸模塊 login.java 高校學(xué)生成績(jī)管理系統(tǒng)主界面模塊 StuMIS.java 信息添加模塊 1. UpdateStuInfo.java 2. UpdateTeaInfo.java 3. UpdateSubInfo.java 4. UpdateExaInfo.java 信息查詢(xún)模塊 1 QueryStuInfo.java 2 QueryStuTab.java 3 QueryGraInfo.java 4 QueryGraTab.java 5 QueryScoInfo.java 6 QueryScoTab.java 信息統(tǒng)計(jì)模塊 1. StatGraInfo.java 2. StatGraTab.java 3. StatScoInfo.java 4. StatScoTab.java 系統(tǒng)管理模塊 1. MgerConfInfo.java