1. 程式人生 > >九、JDBC的API介紹

九、JDBC的API介紹

一、DriverManager

Jdbc程式中的DriverManager用於載入驅動,並建立與資料庫的連結,這個API的常用方法:

DriverManager.registerDriver(new Driver())

DriverManager.getConnection(url, user, password)

注意:在實際開發中並不推薦採用registerDriver方法註冊驅動。原因有二:

1.檢視Driver的原始碼可以看到,如果採用此種方式,會導致驅動程式註冊兩次,也就是在記憶體中會有兩個Driver物件。

2.程式依賴mysqlapi,脫離mysqljar包,程式將無法編譯,將來程式切換底層資料庫將會非常麻煩。

推薦方式:Class.forName(com.mysql.jdbc.Driver);

採用此種方式不會導致驅動物件在記憶體中重複出現,並且採用此種方式,程式僅僅只需要一個字串,不需要依賴具體的驅動,使程式的靈活性更高。

同樣,在開發中也不建議採用具體的驅動型別指向getConnection方法返回的connection物件,通常會通過連線池來獲取。

二、Connection

Jdbc程式中的Connection,它用於代表資料庫的連結,Collection是資料庫程式設計中最重要的一個物件,客戶端與資料庫所有互動都是通過connection物件完成的,這個物件的常用方法:

createStatement():建立向資料庫傳送

sqlstatement物件

prepareStatement(sql) :建立向資料庫傳送預編譯sqlPrepareSatement物件

prepareCall(sql):建立執行儲存過程的callableStatement物件。

setAutoCommit(boolean autoCommit):設定事務是否自動提交。

commit() :在連結上提交事務。 ---與事務相關!!

rollback() :在此連結上回滾事務。

三、Statement

Jdbc程式中的Statement物件用於向資料庫傳送SQL語句, Statement物件常用方法:

executeQuery(String sql) :用於向資料傳送查詢語句。

executeUpdate(String sql):用於向資料庫傳送insertupdatedelete語句

execute(String sql):用於向資料庫傳送任意sql語句

addBatch(String sql) :把多條sql語句放到一個批處理中。

executeBatch():向資料庫傳送一批sql語句執行。 

四、PreparedStatement

PreparedStatementStatement的子介面,它的例項物件可以通過呼叫

Connection.preparedStatement(sql)方法獲得,相對於Statement物件而言:

PreperedStatement可以避免SQL注入的問題。

Statement會使資料庫頻繁編譯SQL,可能造成資料庫緩衝區溢位。PreparedStatement 可對SQL進行預編譯,從而提高資料庫的執行效率。

並且PreperedStatement對於sql中的引數,允許使用佔位符的形式進行替換,簡化sql語句的編寫。

五、ResultSet (結果集)

Jdbc程式中的ResultSet用於代表Sql語句的執行結果。Resultset封裝執行結果時,採用的類似於表格的方式。ResultSet 物件維護了一個指向表格資料行的遊標cursor,初始的時候,遊標在第一行之前,呼叫ResultSet.next() 方法,可以使遊標指向具體的資料行,進而呼叫方法獲取該行的資料。

ResultSet既然用於封裝執行結果的,所以該物件提供的大部分方法都是用於獲取資料的get方法:

獲取任意型別的資料

getObject(int index)

getObject(string columnName)

獲取指定列的資料,例如:

getString(int index)

getString(String columnName)

類似的還有getInt、getDouble等等.

六、釋放資源

Jdbc程式執行完後,切記要釋放程式在執行過程中,建立的那些與資料庫進行互動的物件,這些物件通常是ResultSet, StatementConnection物件。

特別是Connection物件,它是非常稀有的資源,用完後必須馬上釋放,如果Connection不能及時、正確的關閉,極易導致系統宕機。Connection的使用原則是儘量晚建立,儘量早的釋放。

為確保資源釋放程式碼能執行,資源釋放程式碼也一定要放在finally語句中。

七、ResultSet 滾動結果集

ResultSet還提供了對結果集進行滾動和更新的方法

Statement stmt = conn.createStatement( );

next():移動到下一行

previous():移動到前一行

absolute(int row):移動到指定行

beforeFirst():移動resultSet的最前面

afterLast() :移動到resultSet的最後面

updateRow() :更新行資料

八、ResultSet常用資料型別轉換表








相關推薦

介紹類載入過程,什麼是雙親委派模型?

一、類載入 1.什麼是類載入? JVM將編譯好的.class檔案(位元組碼檔案)以二進位制流的方式載入到我們記憶體中,並且將二進位制流中靜態的資料結構轉換成我們方法區中動態執行資料結構,並且在對堆記憶體生成一個java.lang.class物件,作為提供給外界訪問我們方法

周第四次課(2月26日) 11.1 LAMP架構介紹 11.2 MySQLMariaDB介紹 11.3/11.4/11.5 MySQL安裝 擴展 mysql5.5源碼編譯安裝

when image safe x86 lease x86_64 roc use my.cnf 11.1 LAMP架構介紹11.2 MySQL、MariaDB介紹11.3/11.4/11.5 MySQL安裝擴展mysql5.5源碼編譯安裝 http://www.amin

壓縮打包介紹gzip壓縮工具把bzip2壓縮工具xz壓縮工具

gzip bzip2 xz 十九、壓縮打包介紹、gzip壓縮工具、把bzip2壓縮工具、xz壓縮工具一、壓縮打包介紹windows下接觸的壓縮文件大多是.rar,.7z格式,Linux下,不能識別這種格式。.zip格式的文件在Windows和Linux下都能使用。壓縮文件,能節省磁盤空間,傳輸時能

View.js介紹

當使用View.js構建的應用程式同時包含多個檢視時,任何情況下都只有一個檢視是可以被使用者看到的。這個當前被使用者看到的檢視,就是活動檢視。 任何情況下,活動檢視都只會有一個,而且活動檢視會隨使用者瀏覽位置的變更而發生變化。 開發者可以通過API:View.getAct

HTML5單頁框架View.js介紹 - 檢視跳轉(一)

檢視跳轉,是指使用者看到的介面切換為另一個介面的過程,亦即活動檢視轉移的過程。(同一時刻,只有一個檢視處於活動狀態。) 檢視跳轉時,View.js將自動調整位址列中的hash部分,使其始終反映出當前的活動檢視ID。如: http://wzhsoft.com/index.htm

Mybatis之介面式程式設計的原理(大致流程介紹

(一)Mybatis之介面式程式設計的原理(大致流程介紹) 1、載入配置資訊…… 2、通過載入配置資訊載入一個代理工廠Map(PS:這個Map存放的是介面Class與對應的代理工廠的對映) 3、通過介面的Class從代理工廠Map取出對應的代理工廠 4、

JDBC的API介紹

一、DriverManagerJdbc程式中的DriverManager用於載入驅動,並建立與資料庫的連結,這個API的常用方法:DriverManager.registerDriver(new Driver())DriverManager.getConnection(url

SQLPL/SQLDDLDMLTCL介紹

mman pre clas str div red 我們 但是 efi SQL:結構化查詢語言(Structured Query Language) PL/SQL:過程化SQL語言(Procedural Language/SQL) DDL(Data Definit

十章總結

功能 開發計劃 列表 步驟 包括 風險 use case 模板 經理 這第九章主要講述了團隊角色分工、項目經理的由來和要求、項目經理和其他經理的區別、軟件項目中的風險和風險管理、PM的專業能力。 PM的能力要求:1.觀察、理解和快速學習能力、2.分析管理能力

LAMP的安裝與配置

lamp安裝、配置9.1、PHP與httpd的結合工作方式常見PHP開源軟件: 論壇:phpwind、discuz 、phpbb 博客系統:wordpress 門戶站點:drupal、xooms 數據庫:phpMyAdmin、Workbench、MySQL Front、Navicat for MySQ

java中ExecutorExecutorServiceThreadPoolExecutor介紹

cut .net mil col 20px 介紹 bsp tex exe java中Executor、ExecutorService、ThreadPoolExecutor介紹 ExecutorService 的理解與使用 java中Executor、ExecutorSer

Node.js :URLQueryString介紹

反序列化 url地址 字符 cap arc format 一個 定位符 成對 URL網址解析 url: 統一資源定位符,字母,數字,文字需編碼uri: 統一資源標識符,字符串格式規範 註:url 是 uri 的子集 url.parse (urlString, bool,

【React】- 1React介紹

log htm css代碼 大型 har html 高內聚低耦合 目的 耦合 React的開發背景 構建數據不斷變化的大型應用         大量DOM操作     <---- 自動DOM操作 數據變化         邏輯及其復雜     <---

CImglibjpeg--介紹配置(操作JPEG)

variable program pau class keyword download 一個 壓縮 makefile 關於處理圖片,之前寫了兩篇博客關於ImageMagick的: 《ImageMagick–介紹》 《ImageMagick–VS201

動態加載腳本和樣式

所有 load 忽略 報錯 需求 flag mil ans n) 十九、動態加載腳本和樣式 本章主要講解上一章剩余的獲取位置的DOM方法、動態加載腳本和樣式。 1.元素位置 上一章已經通過幾組屬性可以獲取元素所需的位置,那麽這節課補充一個DOM的方法:getBoun

基於字符的I/O操作接口

reader 寫入 內容 網絡傳輸 編碼 writer 字符 read 但是 不管是磁盤還是網絡傳輸,最小的存儲單元都是字節,而不是字符,所以I/O操作的都是字節而不是字符,但是為什麽有操作字符的接口呢?這是因為在我們的程序中通常操作的都是字符的形式,為了操作方便當然要提供

結構和類(結構的概念,類的概念,聲明,構造函數,對象的實例化,類和對象的關系,實例的和靜態的)

color strong pac 定義類 副本 c# 類的定義 們的 調用 結構 在 C# 中,結構是值類型數據結構。它使得一個單一變量可以存儲各種數據類型的相關數據。struct 關鍵字用於創建結構。 結構不支持繼承。結構不能聲明默認的構造函數。 為了定義一個結構,必須使

文件查找locatefind介紹

find命令1、locate文件查找命令:locate:根據文件名查找文件 非實時查找、模糊匹配、速度快,但是依賴於事先構建好的索引庫,索引庫可以通過系統自動實現(周期性任務),也可以通過命令手動實現,手動更新數據庫(updatedb) 模糊匹配體現在不只匹配路徑中的基名,也匹配路徑中的內容;註意

linux任務計劃cronchkconfig工具systemd管理服務unit介紹target介紹

linux基礎linux任務計劃cron[root@test-7 ~]# crontab -eno crontab for root - using an empty one每天的淩晨3點 執行這個0 3 * * * /usr/bin/touch /root/123.txt &>/dev/nul