




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本章重點,19-1 Java與資料庫功能 19-2 進入JDBC的世界 19-3 資料庫的連結 19-4 SQL 敘述 19-5 預先編譯的程式 19-6 資料庫與Java物件,19-1 Java與資料庫功能,使用分散式的處理,讓資料的存取與管理更具透通性。 Java程式設計與資料庫相結合。,19-2 進入JDBC的世界,何謂JDBC JDBC (Java Database Connectivity,簡稱JDBC)的作用就是一種讓Java程式和不同的關聯式資料庫進行連接的API。(JDBC for Oracle, JDBC for SQL, JDBC for Access) 使用JDBC的好處
2、是不管使用那一種資料庫,應用程式均不需修改。,JDBC的架構,下圖例即是Java應用程式和資料庫之間的架構,JDBC的驅動模式,JDBC驅動程式依連接方式不同可分為以下四類: JDBC-ODBC橋接器驅動程式(JDBC-ODBC Bridger Driver): 採用部份Java程式碼所撰寫的的驅動程式(Native-API/Partly Java Driver): JAVA網路協定驅動程式(Net-protocol/All Java Driver): Java原始協定驅動程式(Native-Protocol /All Java Driver):,JDBC-ODBC橋接器驅動程式Type 1:
3、JDBC-ODBC Bridger Driver,Type 1:JDBC-ODBC Bridger Driver,無法網路存取 2-tier資料庫 不支援多執(zhí)行緒(thread)的應用軟體 不支援某些java開發(fā)軟體(例visual c+) 不支援JDBC2.0 API新功能,採用部份Java程式碼所撰寫的的驅動程式 Type2: Native-API/Partly Java Driver,JAVA網路協定驅動程式 Type 3:Net-protocol/All Java Driver,Java原始協定驅動程式 Type 4:Java Native-Protocol /All Java Dri
4、ver,19-3 資料庫的連結,我們要實作一個資料庫,表示得先設定JDBC的應用程式中,並設定ODBC的資料來源於伺服端。 其資料來源(Data Source)是以Microsoft Access為連結的資料庫,當然我們必須取得MS Access的JDBC及ODBC驅動程式以便連接資料庫。 JDBC提供JAVA連接資料庫,ODBC提供資料庫的資料來源,19-3 資料庫的連結,資料庫的驅動程式 資料庫的JDBC驅動程式的種類及支援廠商可由以下網址得知: ,Navatis JDBC products,19-3 資料庫的連結,驅動程式的下載及安裝如下列步驟: 透過網址找到驅動程式。 進入查詢的網頁,
5、我們使用Access資料庫,所以把Driver Type勾選為4,DBMS選MS Access,按Search按鈕來查詢。 進入廠商的下載網站: http:/www.bcs- ,19-1-1.建立連線的JDBC類別 使用Java.sql.package所包含資料庫相關class 及interface (import java.sql.*) JDK1.2.2所包含是JDBC API是2.0版,在使用 的過程當中,常用的class介紹如下:,19-3 資料庫的連結,19-3 資料庫的連結,java.sql.DriverManager是Java.sql.package的一個類別,用來維護Driver
6、,針對應用程式請求的URL進行比對,如果有找到資料庫,則產生回應。 Class是java.lang.package的一個類別,forname是一靜態(tài)method Class.forname(“sun.jdbc.odbc.JdbcodbcDriver”) 下表為Driver及Connection類別一些常用的方法:,19-3 資料庫的連結,Driver及Connection類別常用的方法,Driver及Connection類別常用的方法,載入 driver使用 driver manager 的 一個static 方法 forname(“driver name”) 當連線成功會傳回一個connec
7、tion物件 Connection con=DriverManager.getConnection(“jdbc.odbc.Library”) jdbc.odbc.Library是資料庫名稱其指向實體資料庫c:javabookCh19Library.mdb,Driver及Connection類別常用的方法,Statement stmt=con.Createstatement(); ResultSet result=stmt.executeQuery(“select * from myTable”) 要取得回傳結果,可以利用Resultset類別及getResultSet()方法。,【執(zhí)行結果】,
8、19-3 資料庫的連結,基本資料庫存取 基本資料庫存取是透過Connection物件建 立statement物件(java.sql.Statement)以進行 SQL 指令(select, insert, update, delete),19-3 資料庫的連結,19-3 資料庫的連結,Statement類別的基本操作,19-3 資料庫的連結,Resultset類別是透過Resultset物件取得executeQuery() 所傳回的資訊,Resultset results=Statement.executeQuery(“select 姓名from借書”),傳回第一筆資料,傳回前一筆資料,傳回下
9、一筆資料,傳回最後一筆資料,Ch19_02 簡單查詢程式,19-3 資料庫的連結,Metadata類別 使用Metadata類別取得資料庫的基本資訊,其透過java.sql. ResultSetMetadata儲存於ResultSet物件中 查詢資料庫的資訊須使用ResultSetMetadata, ResultSet兩個 類別,配合getMetaData()方法以取得ResultSetMetadata的物 件索引 可查詢的資料庫資訊包括 多少欄位 欄位名稱是否有大小寫的區(qū)分 資料的型別 那一記錄是屬於那一資料表,Metadata類別常用的方法,要取得回傳Metadata結果,可以利用Resu
10、ltset類別及下列方法,19-4 SQL敘述,大部分的SQL敘述分為三類: 資料定義語言DDL( Data Definition Language):用來建立資料表定義欄位的敘述。 資料操作語言DML(Data Manipulation Language):屬於資料的基本操作,可用來進行INSERT、UPDATE、DELETE等敘述。 資料查詢語言DQL(Data Query Language):用來查詢資料,使用SELECT指令。,19-4 SQL敘述,SQL的SELECT指令,提供上述的查詢需要,其語法: SELECT column namel , column name2 FROM t
11、able namel,table name2, WHERE子句,19-4 SQL敘述,SQL指令將WHERE配合INSERT、UPDATE、DELETE指令以進行動態(tài)查詢功能 更新資訊以Update指令將多筆資訊同時進行更新 UPDATE table name(借書人) SET column1=value (性名=宋明華) WHERE column3=value(編號=20),19-4 SQL敘述,SQL指令以INSERT指令以進行資料新增 INSERT INTO table name(column1, column n) VALUES(value1, value n) SQL指令以DELET
12、E指令以進行資料刪除 DELETE table name WHERE column=value,Ch19_03 簡單資料更新程式,Ch19_03 簡單資料更新程式 Ch19_04 簡單資料新增程式 Ch19_05 簡單資料刪除程式,19-5 預先編譯的程式(PreparedStatement),若使用上述的指令於Stat.execute() ,將無法重覆使用之前使用過sql statement,將造成資料庫的效率降低 改善上述問題可運用以下兩種方法 一、以PreparedStatement將SQL statement透過PreparedStatement的參數進行資料庫的查詢 二、以SQL 的
13、預儲程式(store procedure)進行查詢,PreparedStatement物件,每次執(zhí)行同一sql 敘述時,可改變參數值 使用(?) 代表參數 使用setX()setDouble, setFloat, setINT, setString 取得參數,參數的順序使用索引1,2取得其語法 PreparedStatement pstmt = (Connection) conDB.PreparedStatement(“Update借書人”+”Set姓名=?Where編號=?”) Pstmt.setString(1,宋明華) Pstmt.setString(2,23),PreparedStat
14、ement物件,使用connection物件的PreparedStatement 方法產生下: PreparedStatement psDatabase = (Connection) conDatabase.PreparedStatement(SQL敘述),Ch19_06 preparedstatement改變sql的參數值,PreparedStatement批次處理,批次處理作業(yè):利用Statement物件的addBatch及executeBatch兩個方法進行 Void addBatch(String sql) addBatch(String sql1) addBatch(String s
15、ql2) addBatch(String sql3) int executeBatch(),Ch19_07 preparedstatement批次處理,19-5 預先編譯的程式,PreareStatement依參數填入的方法,將參數型態(tài)區(qū)分為五種:,19-6 資料庫與Java物件,下表為SQL資料轉為Java的資料類型:,19-6 資料庫與Java物件,下表為SQL資料轉為Java的資料類型:,例如以一個借書人的資料表來說明:,利用 Library 的類別及成員,並利用tostring()方法取得資料庫的內容。: 範例 如程式Ch19_08從資料庫取出資料放入library物件,再透過connection物件、Statement物件及ResultSet物件來讀取資料庫的資料。,範例程式,13 public int getId() return 編號; 14 public String getName() return 姓名; 15 public String getSex() return 性別; 16 public String getPID() return 身分證字號; 17 public String getPhone() return 電話; 18 public String getAddress() return 住址; 19
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療機構行政部門職責
- 2025部編二年級語文下冊課程教學計劃
- 牛津譯林版一年級上冊英語班級管理計劃
- 一年級班務教學素質教育工作計劃
- 2025年裝飾公司營銷策略工作計劃
- 六年級道德與法治學習能力提升計劃
- 以形啟思:知識可視化視覺表征工具在初中物理概念教學中的創(chuàng)新實踐
- 以學生為主體的小學英語課外作業(yè)創(chuàng)新與實踐研究
- 新課標信息技術學習心得體會
- 國有企業(yè)資金管理機制完善問題及措施
- 2023年輔警招聘考試公共基礎知識試卷
- 垣曲縣隆鑫礦業(yè)有限責任公司鐵礦(伴生鈷)采礦權價款評估報告
- GB/T 27844-2011化學品聚合物在水中的溶解/析出特性
- 2023年天河區(qū)中小學生游泳比賽成績冊
- 《勞動合同法講解》課件
- 沉淀法白炭黑的性能與運用課件
- 勝任力調查問卷
- 李善友顛覆式創(chuàng)新課件
- 分包單位過程施工進度款審批表
- 比和比例綜合練習題及答案-
- 小學古詩詞大賽-九宮格練習課件
評論
0/150
提交評論