




已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
概念:JDBC及驅(qū)動程序 數(shù)據(jù)庫:MS Access;MS Excel;JavaDB 數(shù)據(jù)庫連接(JDBC URL) 數(shù)據(jù)庫訪問(含SQL),本章目標,Ch05-數(shù)據(jù)庫,濟南大學(xué)信息科學(xué)與工程學(xué)院 制作人:喬善平,課程:Java程序設(shè)計 e-mail:ise_,主要的包、類及接口,java.sql DriverManager Connection Statement(PreparedStatement;CallableStatement) ResultSet DatabaseMetaData;ResultSetMetaData,濟南大學(xué)信息科學(xué)與工程學(xué)院 制作人:喬善平,課程:Java程序設(shè)計 e-mail:ise_,實例,使用JavaDB設(shè)計一個單選題數(shù)據(jù)庫 設(shè)計一個類,實現(xiàn)下列功能: 連接數(shù)據(jù)庫 隨機選擇n道題目 輸出題目內(nèi)容 考慮難度和分布選擇n道題目 練習(xí)對Excel的操作(student.xls) 練習(xí)對Access的操作(words.mdb),數(shù)據(jù)庫編程,概述 基本SQL語句 訪問數(shù)據(jù)庫 實例,本章基本要求,了解JDBC及其驅(qū)動程序的類型 熟悉基本的SQL語句 會訪問數(shù)據(jù)庫,概述,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,常用數(shù)據(jù)庫 Java DB MySQL Microsoft Access Microsoft SQL Server Oracle Sybase ,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,JDBC JDBC Java Database Connectivity JDBC的體系結(jié)構(gòu),濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,JDBC驅(qū)動程序的類型,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,import java.sql.*; import javax.sql.*; java.sql.SQLException,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,基于JDBC的數(shù)據(jù)庫訪問的基本步驟: 建立數(shù)據(jù)庫(含啟動服務(wù)器、設(shè)置數(shù)據(jù)源等) 加載JBDC驅(qū)動程序 獲得到數(shù)據(jù)庫的連接 創(chuàng)建執(zhí)行SQL語句的聲明 向數(shù)據(jù)庫發(fā)送并執(zhí)行SQL語句 處理執(zhí)行的結(jié)果 關(guān)閉連接,基本SQL語句,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,表操作 創(chuàng)建表 create table 表名(字段名1 數(shù)據(jù)類型1, ) create table 成績表(學(xué)號 integer, 姓名 char(20), 成績 double) 刪除表 drop table 表名 drop table 成績表,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,列操作 添加列 alter table 表名 add 字段名 數(shù)據(jù)類型 alter table 成績表 add 性別 char(2) 刪除列 alter table 表名 drop column 字段名 alter table 成績表 drop column 性別 修改列 alter table 表名 alter column 字段名 數(shù)據(jù)類型 alter table 成績表 alter column 姓名 char(30),濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,記錄操作 插入記錄 insert into 表名 values(值1,) insert into 成績表 VALUES(2008010441,王二 ,85) 刪除記錄 delete from 表名 where 條件表達式 delete from 成績表 where 姓名=王二 更新記錄 update 表名 set 字段名=值 where 條件表達式 update 成績表 set 姓名=王三 where 姓名=王二,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,查詢記錄 select語句 SELECT * FROM SCORE WHERE C180 SELECT * FROM stu ORDER BY 成績 SELECT * FROM stu WHERE 姓名 LIKE 張%,訪問數(shù)據(jù)庫,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,此處以訪問 Microsoft Access 數(shù)據(jù)庫為例進行講解,對其他類型數(shù)據(jù)庫的訪問類似。主要區(qū)別在于連接數(shù)據(jù)庫的方法。,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,創(chuàng)建數(shù)據(jù)庫并設(shè)置數(shù)據(jù)源 設(shè)計滿足系統(tǒng)需求的數(shù)據(jù)庫和相關(guān)表 完成基本數(shù)據(jù)的錄入,完成數(shù)據(jù)庫的建立 設(shè)置數(shù)據(jù)源(Windows XP下) 控制面板管理工具數(shù)據(jù)源(ODBC) 用戶DSN標簽添加選擇驅(qū)動程序完成 輸入數(shù)據(jù)源名選擇數(shù)據(jù)庫確定 /在此可使用高級按鈕設(shè)置登錄用戶和密碼,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,加載驅(qū)動程序類 Class.forName(“驅(qū)動程序類名”); JDBC-ODBC橋接器 在JDK中已經(jīng)提供 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 第4類JDBC Driver 需要下載相關(guān)的jar文檔 將jar文檔添加到開發(fā)環(huán)境中,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,獲得一個到數(shù)據(jù)庫的連接 JDBC URL 格式:jdbc: 例如 String urlstr = “jdbc:odbc:mydb”; String urlstr = “jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=path/mydb.mdb”;,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,獲得連接 Connection conn; conn = DriverManager.getConnection(urlstr); conn = DriverManager.getConnection (urlstr, user, pwd);,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,創(chuàng)建一個使用SQL語句的對象 Statement stmt; stmt = conn.createStatement(); stmt = conn.createStatement(int,int); int:結(jié)果集游標的滾動類型及對數(shù)據(jù)庫變化的反映 ResultSet.TYPE_FORWARD_ONLY ResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.TYPE_SCROLL_SENSITIVE int:是否能用結(jié)果集對數(shù)據(jù)庫進行更新 ResultSet.CONCUR_READ_ONLY ResultSet.CONCUR_UPDATABLE,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,執(zhí)行SQL語句并獲得結(jié)果 ResultSet rset; 查詢語句(SELECT) rset = stmt.executeQuery(SQL語句); 更新語句(INSERT、UPDATE、DELETE) int ret = stmt.executeUpdate(SQL語句);,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,處理結(jié)果 說明 ResultSet對象維護一個指向當前行的位置光標,初始在第1行前面,next()方法可下移,當沒有多余行時返回false ResultSet提供了一組get方法用于獲取當前行中各列值,按照left-to-right順序讀取,且每列只能讀取一次。列號從1開始,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,ResultSet接口提供以下操作結(jié)果集數(shù)據(jù)的方法 光標位置 boolean next(); boolean previous(); boolean first(); boolean last(); void beforeFirst(); void afterLast(); boolean absolute(int); boolean relative(int); boolean isBeforeFirst(); boolean isAfterLast(); boolean isFirst(); boolean isLast();,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,操作列數(shù)據(jù) boolean getBoolean(int/String) byte getByte(int/String) short getShort(int/String) int getInt(int/String) long getLong(int/String) float getFloat(int/String) double getDouble(int/String) String getString(int/String) Time getTime(int/String) Date getDate(int/String) Object getObject(int/String) int findColumn(String columnName),濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,操作行數(shù)據(jù) rs.absolute(5); rs.updateString(“NAME“, “Zhansan“); rs.updateRow(); rs.moveToInsertRow(); rs.updateString(1, “Zhansan“); rs.updateInt(2, 35); rs.updateBoolean(3, true); rs.insertRow(); rs.moveToCurrentRow();,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,關(guān)閉連接 rset.close(); stmt.close(); conn.close();,實例,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,問題描述(Example11_Word.java) 設(shè)已存在一個Access數(shù)據(jù)庫words.mdb,其中有一個表words,表結(jié)構(gòu)如下: 設(shè)計一個數(shù)據(jù)庫程序,完成英漢查詢的功能。即輸入一個英文單詞,顯示出查詢結(jié)果,本章問題小結(jié),JDBC的含義與作用是什么? 數(shù)據(jù)庫編程一般需要導(dǎo)入什么包和處理什么異常? 如何設(shè)置ODBC的DSN? 如何加載數(shù)據(jù)庫驅(qū)動程序? 如何獲得到一個數(shù)據(jù)庫的連接(Connection)? 如何獲得一個使用SQL語句的對象(Statement)? 如何執(zhí)行SQL語句? 如何處理處理結(jié)果(ResultSet)? 如何關(guān)閉連接? 會使用基本的SQL語句。,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,作業(yè),什么是JDBC? 說說使用JDBC訪問數(shù)據(jù)庫的基本步驟。,其它內(nèi)容,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,SQL99的主要數(shù)據(jù)類型,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,Class.forName(“com.mysql.jdbc.Driver“); Connection conn = DriverManager.getConnection(“jdbc:mysql:/localhost:3306/DBname“, “, “); Class.forName(“org.apache.derby.jdbc.ClientDriver“); Connection conn = DriverManager.getConnection(“jdbc:derby:/localhost:1527/DBname“, “, “); Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); Connection conn = DriverManager.getConnection(“jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=e:/qsp.mdb“, “, “); Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver“); Connection conn = DriverManager.getConnection( “jdbc:microsoft:sqlserver:/localhost:1433;databaseName=master“, “, “);,濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,Connection的主要方法 void commit() void rollback() DatabaseMetaData getMetaData() Statement createStatement() Statement createStatement(int, int) PreparedStatement prepareStatement(String) CallableStatement prepareCall(String) void close(),濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,Statement的主要方法 ResultSet executeQuery(String sql) int executeUpdate(sql) boolean execute(sql) ResultSet getResultSet() int getUpdateCount() Connection getConnection() void close() void clearBatch() void addBatch(String sql) int executeBatch(),濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,元數(shù)據(jù) DatabaseMetaData 用于獲取描述數(shù)據(jù)庫的元數(shù)據(jù) ResultSetMetaData 用于獲取描述表的元數(shù)據(jù),濟南大學(xué)信息科學(xué)與工程學(xué)院 - 2011,PreparedStatement( extends Statement ) PreparedStatement ps = conn.pre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年氣體檢測監(jiān)控系統(tǒng)項目發(fā)展計劃
- 數(shù)字工具在傳統(tǒng)課堂中的應(yīng)用與效果分析
- 智能教育機器人在家庭教育的應(yīng)用前景
- 教育心理學(xué)實踐激勵學(xué)生的關(guān)鍵要素
- 教育公平政策與資源分配的實踐
- 學(xué)生自我效能感的培養(yǎng)教育心理學(xué)的秘密武器
- 教育技術(shù)的成功案例與實踐經(jīng)驗分享
- 商業(yè)綜合體工程監(jiān)理案例分析
- 能源革新引領(lǐng)教育升級探索智能教育設(shè)施的新模式
- 商業(yè)行業(yè)如何推動青少年健康飲食政策的落實
- 異口同音公開課
- 專利代理人資格考試實務(wù)試題及參考答案
- 運用信息技術(shù)助力勞動教育創(chuàng)新發(fā)展 論文
- GB/T 602-2002化學(xué)試劑雜質(zhì)測定用標準溶液的制備
- GB/T 4074.8-2009繞組線試驗方法第8部分:測定漆包繞組線溫度指數(shù)的試驗方法快速法
- 2023年涉縣水庫投資管理運營有限公司招聘筆試模擬試題及答案解析
- 新版有創(chuàng)血壓監(jiān)測ABP培訓(xùn)課件
- 重癥醫(yī)學(xué)科常用知情告知書
- 二等水準測量記錄表
- 母線槽安裝檢驗批質(zhì)量驗收記錄
- 企業(yè)員工上下班交通安全培訓(xùn)(簡詳共2份)
評論
0/150
提交評論