收藏 分享(赏)

JAVA+JDBC编程.ppt

上传人:hyngb9260 文档编号:4529125 上传时间:2019-01-02 格式:PPT 页数:42 大小:1.91MB
下载 相关 举报
JAVA+JDBC编程.ppt_第1页
第1页 / 共42页
JAVA+JDBC编程.ppt_第2页
第2页 / 共42页
JAVA+JDBC编程.ppt_第3页
第3页 / 共42页
JAVA+JDBC编程.ppt_第4页
第4页 / 共42页
JAVA+JDBC编程.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

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資料庫 不支援多執行緒(thread)的應用軟體 不支援某些java開發軟體(例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 Dr

4、iver,19-3 資料庫的連結,我們要實作一個資料庫,表示得先設定JDBC的應用程式中,並設定ODBC的資料來源於伺服端。其資料來源(Data Source)是以Microsoft Access為連結的資料庫,當然我們必須取得MS Access的JDBC及ODBC驅動程式以便連接資料庫。 JDBC提供JAVA連接資料庫,ODBC提供資料庫的資料來源,19-3 資料庫的連結,資料庫的驅動程式 資料庫的JDBC驅動程式的種類及支援廠商可由以下網址得知: http:/ JDBC products,19-3 資料庫的連結,驅動程式的下載及安裝如下列步驟: 透過網址找到驅動程式。 進入查詢的網頁,我們

5、使用Access資料庫,所以把Driver Type勾選為4,DBMS選MS Access,按Search按鈕來查詢。 進入廠商的下載網站:http:/ http:/www.bcs- 使用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,針對應用程式請求的URL進行

6、比對,如果有找到資料庫,則產生回應。 Class是java.lang.package的一個類別,forname是一靜態method Class.forname(“sun.jdbc.odbc.JdbcodbcDriver”) 下表為Driver及Connection類別一些常用的方法:,19-3 資料庫的連結,Driver及Connection類別常用的方法,Driver及Connection類別常用的方法,載入 driver使用 driver manager 的 一個static 方法 forname (“driver name”) 當連線成功會傳回一個connection物件 Connect

7、ion 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()方法。,【執行結果】,19-3 資料庫的連結,基本資料

8、庫存取 基本資料庫存取是透過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借書”),傳回第一筆資料,傳回前一筆資料,傳回下一筆資料,傳回最後一筆資料,Ch

9、19_02 簡單查詢程式,19-3 資料庫的連結,Metadata類別 使用Metadata類別取得資料庫的基本資訊,其透過java.sql. ResultSetMetadata儲存於ResultSet物件中查詢資料庫的資訊須使用ResultSetMetadata, ResultSet兩個 類別,配合getMetaData()方法以取得ResultSetMetadata的物 件索引可查詢的資料庫資訊包括 多少欄位 欄位名稱是否有大小寫的區分 資料的型別 那一記錄是屬於那一資料表,Metadata類別常用的方法,要取得回傳Metadata結果,可以利用Resultset類別及下列方法,19-4

10、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 name2FROM table namel,table na

11、me2,WHERE子句,19-4 SQL敘述,SQL指令將WHERE配合INSERT、UPDATE、DELETE指令以進行動態查詢功能 更新資訊以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指令以DELETE指令以進行資料刪除 DELETE table

12、 nameWHERE column=value,Ch19_03 簡單資料更新程式,Ch19_03 簡單資料更新程式 Ch19_04 簡單資料新增程式 Ch19_05 簡單資料刪除程式,19-5 預先編譯的程式(PreparedStatement),若使用上述的指令於Stat.execute() ,將無法重覆使用之前使用過sql statement,將造成資料庫的效率降低 改善上述問題可運用以下兩種方法 一、以PreparedStatement將SQL statement透過PreparedStatement的參數進行資料庫的查詢二、以SQL 的預儲程式(store procedure)進行查詢

13、,PreparedStatement物件,每次執行同一sql 敘述時,可改變參數值使用(?) 代表參數 使用setX()setDouble, setFloat, setINT, setString 取得參數,參數的順序使用索引1,2取得其語法 PreparedStatement pstmt = (Connection) conDB.PreparedStatement(“Update借書人”+”Set姓名=?Where編號=?”) Pstmt.setString(1,宋明華) Pstmt.setString(2,23),PreparedStatement物件,使用connection物件的Pre

14、paredStatement 方法產生下: PreparedStatement psDatabase = (Connection) conDatabase.PreparedStatement(SQL敘述),Ch19_06 preparedstatement改變sql的參數值,PreparedStatement批次處理,批次處理作業:利用Statement物件的addBatch及executeBatch兩個方法進行 Void addBatch(String sql) addBatch(String sql1) addBatch(String sql2) addBatch(String sql3)

15、 int executeBatch(),Ch19_07 preparedstatement批次處理,19-5 預先編譯的程式,PreareStatement依參數填入的方法,將參數型態區分為五種:,19-6 資料庫與Java物件,下表為SQL資料轉為Java的資料類型:,19-6 資料庫與Java物件,下表為SQL資料轉為Java的資料類型:,例如以一個借書人的資料表來說明:,利用 Library 的類別及成員,並利用tostring()方法取得資料庫的內容。: 範例 如程式Ch19_08從資料庫取出資料放入library物件,再透過connection物件、Statement物件及Resul

16、tSet物件來讀取資料庫的資料。,範例程式,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 public String toString() 20 return new String 21 (“編號:“ + Integer.toString(編號) + 22 “n姓名:“ + 姓名 + 23 “n性別:“ + 性別 + 24 “n身分證字號:“ + 身分證字號 +,25 “n電話:“ + 電話 + 26 “n住址:“ + 住址); 27 28 int 編號; 29 String 姓名; 30 String 性別; 31 String 身分證字號; 32 String 電話; 33 String 住址; 34 ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报