JDBC應用程式常見介面API和基本操作步驟
一、常用JDBC API
在java.sql包中包含體現JDBC基本功能的若干介面和類:
1.Driver 介面:代表驅動程式
2.DriverManager 類:驅動程式管理員
3.Connection 介面:代表資料庫連線
4.Statement 、PreparedStatement、CallableStatement 介面:代表資料庫操作物件
5.ResultSet 介面:代表結果集
6.DatabaseMetadata、ResultSetMetadata介面:代表元資料
7.Types 類:代表JDBC型別
===============================================================================
二、若干API的具體說明
Statement和 PreparedStatement ------SQL語句執行介面
Statement 介面代表了一個數據庫的狀態,再向資料庫傳送相應的SQL語句時,都需要建立Statement 介面或者PreparedStatement 介面。
Statement 主要用於操作不帶引數的SQL語句,比如增、刪、改。
PreparedStatement:預編譯的Statement介面
第一步:通過連接獲得PreparedStatement 介面物件,用帶佔位符(?)的sql語句構造。
PreparedStatement ps=con.praperedStatement("select * from test where id=?");
第二步:設定引數
ps.setString(1,"5");
第三步:執行sql語句
rs= ps.executeQuery();
Statement 傳送完整的sql語句到資料庫不是直接執行,而是先編譯、後執行。
PreparedStatement 先發送帶引數的sql語句,在傳送一組引數值。
如果是同構的sql語句,則PreparedStatement 效率高。對於異構的sql語句,兩者效率差不多。
同構: 兩個sql語句可編譯的部分是相同的,只有引數值不同。
異構: 兩個sql語句的格式是不同的。
注意點:1.使用預編譯的Statement
2.可以跨資料庫使用,編寫通用程式。
3.能用預編譯時儘量用預編譯。
--------------------------------------------------------------------------------------------------------
ResultSet介面:
ResultSet介面是查詢結果集介面,它對返回的結果集進行處理。ResultSet是程式設計師進行JDBC操作的必須介面。
---------------------------------------------------------------------------------------------------------
ResultSetMetaData----元資料操作介面:
ResultSetMetaData 是對元資料進行操作的介面,可以實現很多高階功能。Hibernate執行資料庫的操作,大多是通過此介面。可以認為,此介面是SQL查詢語言的一種反射機制。ResultSetMetaData 可以通過資料的形式,來遍歷資料庫各個欄位的屬性。對於開發者來說,此機制意義重大。
JDBC通過元資料(MetaData)來獲取具體的表相關的資訊,例如,可以查詢資料庫中有哪些表、標有哪些欄位、欄位的屬性等。MetaData 通過一系列的getXXX 將這些資訊返回給我們。
MetaData元資料包括 資料庫源資料DatabaseMetadata 和 結果集元資料ResultSetMetaData 。
資料庫源資料DatabaseMetadata: 使用connection.getMetaData()獲得了關於資料庫整體的元資料資訊。
結果集元資料ResultSetMetaData: resultSet.getDataMeta獲得的比較重要的是表的列名、列的屬性等資訊。
結果集元資料物件: ResultSetMetaData meta = rs.getDataMeta();
欄位個數:meta.getColumnCount();
欄位名字:meta.getColumnName();
欄位JDBC型別:meta.getColumnType();
欄位資料庫型別:meta.getColumnTypeName();
資料庫元資料物件: DatabaseMetaData meta = con.getMetaData();
資料庫名:meta.getDatabaseProductName();
資料庫版本號:meta.getDatabaseProductVersion();
資料庫驅動名:meta.getDriverName();
資料庫驅動版本號:meta.getDriverVersion();
資料庫URL:meta.getURL();
該連線的資料庫登入名:meta.getUserName();
-------------------------------------------------------------------------------------------------------------------------------------
三、JDBC應用程式的基本步驟:
1.註冊驅動
2.建立資料庫連線
3.建立資料庫操作物件
4.執行SQL
5.處理結果集
6.關閉JDBC物件
1.註冊一個驅動driver
註冊驅動程式的三種方式:
方式一:Class.forName("Oracle.jdbc.driver.OracleDriver");
方式二:Driver driver=new Oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(driver);
方式三:編譯時在虛擬機器中載入驅動
javac -D jdbc.drivers = oracle.jabc.driver.OracleDriver xxx.java
java -D jabc.drivers = 驅動全名 類名
使用系統屬性名,載入驅動 -D表示為系統屬性賦值
附:mysql 的Driver全名:com.mysql.jdbc.Driver
sqlserver 的Driver全名:com.microsoft.jdbc.sqlserver.SQLServerDriver
2.建立連線
conn=DriverManager.getConnection
("jdbc:oracle.thin:@192.168.0.254:1521/test","username","password");
上面括號中放的是:oracle自協議[email protected]+ip:port / 資料庫例項名,資料庫使用者名稱,使用者密碼。
mysql url寫法:jdbc:mysql://192.168.254:3306/test
3.獲得一個Statement物件
sta = conn.createStatement();
4.通過Statement執行sql語句
sta.excuteQuery(sql);//返回一個查詢結果集
sta.executeUpdate(sql);//返回值為 int 型,表示影響記錄的條數
將sql語句通過連線傳送到資料庫中執行,以實現對資料庫的操作。
5.處理結果集
使用Connection物件獲得一個Stagement,Statement中的executeQuery(String sql)方法可以使用select語句查詢,並返回一個結果集 ResultSet 。通過遍歷這個結果集,可以獲得select語句的查詢結果。ResultSet的next()方法會操作一個遊標從第一條記錄開始讀取,直到最後一天記 錄。 executeUpdate(String sql)方法用於執行 DDL /DML 語句,比如update,delete等。
只有select語句才有返回結果集。
例:Statement sta = con.createStatement(); //建立statement物件
String sql = " insert into test(id,name) values(1"+" " " "+"king"+" "" "+") ";
sta.executeUpdate(sql); //執行sql語句
String sql = "select * from test";
ReslutSet rs = sta.executeQuery(sql);//執行sql語句後有結果集
//遍歷處理結果集
while(rs.next()){
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("name"));
}
6.關閉資料庫連線(釋放資源)
呼叫close()方法:
rs.close();
sta.close();
conn.close();
ResultSet 、Statement 和Connetction是依次依賴的。
注意:要按先 ResultSet ,再Statement,最後Connetction的順序關閉資源。因ResultSet和Statement在連線的情況下才能使用,所以在連使用束 後可能還有其他的statement還在連線,所以不能先關閉Connection。
相關推薦
JDBC應用程式常見介面API和基本操作步驟
一、常用JDBC API在java.sql包中包含體現JDBC基本功能的若干介面和類:1.Driver 介面:代表驅動程式2.DriverManager 類:驅動程式管理員3.Connection 介面:代表資料庫連線4.Statement 、PreparedStatemen
js之陣列API(應用程式程式設計介面)
資料API是陣列原型中(Array.prototype.*)的陣列方法 1.新增元素 unshift() 方法(佇列方法) 新增到開頭,返回陣列的length push()方法(棧方法) arr.push(1
23 Flask mega-tutorial 第23章應用程式程式設計介面(API)
如需轉載請註明出處。 win10 64位、Python 3.6.3、Notepad++、Chrome 67.0.3396.99(正式版本)(64 位) 注:作者編寫時間2018-05-09,linux、python 3.5.2 以下內容均是加入自己的理解與增刪,
Amazon Lex常見問題_深度學習的應用程式對話介面
問:什麼是 Amazon Lex? Amazon Lex 是一種使用語音和文字構建對話介面的服務。Amazon Lex 使用的對話引擎與 Alexa 相同,可以提供高質量的語音識別和語言理解功能,讓您能夠在新的或現有的應用程式中新增掌握自然語言的精密“聊天機器
Linux核心和使用者空間應用程式的介面—系統呼叫
系統呼叫 就是使用者空間應用程式和核心提供的服務之間的一個介面。由於服務是在核心中提供的,因此無法執行直接呼叫;相反,您必須使用一個程序來跨越使用者空間與核心之間的界限。在特定架構中實現此功能的方法會有所不同。因此,本文將著眼於最通用的架構 —— i386。 在本文中
理解Web應用程式的程式碼結構和執行原理(3)
1、理解Web應用程式的執行原理和機制 Web應用程式是基於瀏覽器/伺服器模式(也稱B/S架構)的應用程式,它開發完成後,需要部署到Web伺服器上才能正常執行,與使用者互動的客戶端是網頁瀏覽器。 瀏覽器負責顯示來自伺服器的資料和接受使用者的輸入資料,也
android應用程式的介面程式設計
要點 android的介面與view元件 view元件和viewgroup元件 android控制程式的三種方式 通過繼承view開發自定義view android常見的佈局管理器 文字框元件:textview和edittext 按鈕元件:button 特殊按鈕元件:radiobut
Kik的加密貨幣應用程式在App Store和Google Store上架
點選上方 “藍色字” 可關注我們! 暴走時評:圍繞kin構建的移動應用程式的數量——由移動訊息應用程式Kik建立和釋出的加密貨幣——正在增加。隨著Google Play和iOS的軟體商店批准,將有更多的app可用,預計未來
轉自老羅 Android應用程式資源的編譯和打包過程分析
原文地址 http://blog.csdn.net/luoshengyang/article/details/8744683 轉載自老羅,轉載請說明 我們知道,在一個APK檔案中,除了有程式碼檔案之外,還有很多資原始檔。這些資原始檔是通過An
python中 雜湊表應用,常見函式 MD5和SHA2演算法
通過雜湊函式計算資料儲存 insert(key, value) 插入鍵值對 get(key) 獲取值 delete(key) 刪除值 常見雜湊函式 除法雜湊:h(k) = k % m 乘法雜湊:h(k) = floor(m*(
JDBC詳解之與mySQL資料庫的連線和基本操作一
JDBC詳解 JDBC詳解 一 JDBC基本操作 MySQL的JDBC驅動包: mysql-connector-java-5.1.3
C#開發程式登入介面使用者名稱和密碼的驗證
今天呢!小編比較閒!回想一下自己開發過的程式!然後呢!為了便於加深記憶!小編便自己又寫了一遍進銷存程式!好吧廢話不多說!進入主題啦! 這個關於Models部分我就不用講了吧!學C#的應該都懂的!...略過... DAL部分 public class UsersServic
WIN7中元件服務中的DCOM配置找不到Microsoft Excel應用程式的解決辦法和
對 Excel 進行程式設計,實際上就是通過 .Net Framework 去呼叫 Excel 的 COM 元件,所有要在 Web 環境下呼叫 COM 元件的時候,都需要對其進行相應的配置。很多朋友都反映在 Windows 環境下除錯正常的程式,一拿到 Web 環境中就出錯,實際上就是因為缺少了這一步。
【軟體開發底層知識修煉】二十六 ABI-應用程式二進位制介面 學習總結文章目錄
前面學習了ABI的知識,感覺受益良多。對底層與編譯器有更加深刻的認識,為此這裡將前面寫過的關於ABI 的文章給列出來,方便學習與翻閱。 【軟體開發底層知識修煉】二十一 ABI-應用程式二進位制介面一 【軟體開發底層知識修煉】二
軟體開發底層知識修煉】二十三 ABI-應用程式二進位制介面三之深入理解函式棧幀的形成與摧毀
上兩篇文章我們初步接觸了ABI-應用程式二進位制介面的概念,點選連結檢視上一篇文章:【軟體開發底層知識修煉】二十二 ABI-應用程式二進位制介面 二。瞭解了為什麼會有ABI的存在。本篇文章繼續學習ABI 的內容。學習在ABI規範下,函式棧幀的結構與函式呼叫時函式棧幀的詳
【軟體開發底層知識修煉】二十二 ABI-應用程式二進位制介面 二
上一篇文章學習了ABI的相關內容,具體最後分析了不同ABI下結構體的對齊方式的不同。點選連結檢視上一篇文章:【軟體開發底層知識修煉】二十一 ABI-應用程式二進位制介面一 本篇文章繼續學習ABI相關內容。是上一篇文章的補充,如果沒有看過上一篇文章,一定要看上一篇
【軟體開發底層知識修煉】二十一 ABI-應用程式二進位制介面一
前面學習了可執行程式的結構,點選連結檢視上一篇文章:【軟體開發底層知識修煉】二十 深入理解可執行程式的結構 本篇文章開始新的篇章,學習應用程式的二進位制介面-ABI。 文章目錄 1 什麼是ABI(Appli
C / C ++和應用程式中的INT_MAX和INT_MIN
大多數時候,在競爭性程式設計中,需要分配資料型別可以容納的變數,最大值或最小值,但是記住如此大而精確的數字是一項困難的工作。因此,C ++有一些巨集來表示這些數字,因此可以直接將這些巨集分配給變數,而無需實際輸入整數。 INT_MAX是一個巨集,指定整數變數不能儲存超出此限制的任何值。 INT_
Z-Stack 作業系統抽像層應用程式程式設計介面
【轉】http://bbs.eeworld.com.cn/thread-375521-1-1.html 1.介紹 1.1目的 本檔案的目的是詳細說明作業系統抽象層(OSAL)API 。該API允許Z-stack寫自己內部的軟體元件而與具體的作業系統、核心、或者任務環境無關(包括控制迴圈或
如何獲取應用程式的版本號和版本名
實現獲取應用程式的版本號和阪本名,通過獲取包管理器開始;步驟如下: 程式如下 public class MainActivity extends AppCompatActivity { Co