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