當前位置:網站首頁>JDBC編碼六步走
JDBC編碼六步走
2022-01-28 08:10:28 【CamphorBloom】
JDBC介紹
Java Database Connectivity(簡稱JDBC)是Java語言中用來規範客戶端程序如何來訪問數據庫的應用程序接口。
JDBC的本質
JDBC是SUN公司制定的一套連接數據庫的接口(interface)。而接口都有調用者(程序員)和實現者(各大數據庫廠商),這些面向接口調用。面向接口寫實現類的操作,都屬於面向接口編程思想。
面向接口編程是一種非常受益的思想,java的多態機制就是個典型範例(面向抽象編程)。
第一步:注册驅動
作用是告知java程序即將要連接的數據庫廠商品牌(MySQL、Oracle、SQLserver)。
第二步:獲取連接
打開JVM進程與數據庫進程之間的通道,屬於進程間通信,重量級。
第三步:獲取數據庫操作對象
專門執行SQL語句的對象。
第四步:執行SQL語句(DQL、DML)
第五步:處理查詢結果
只有當第四步執行的是select語句時,才會處理查詢後的結果集。
第六步:釋放資源
使用完畢,一定要及時關閉連接。
數據驅動jar包,各種mysql-connector-java版本下載地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java
注意:mysql8和mysql5的導入包路徑不同。
mysql5:com.mysql.jdbc.Driver
mysql8:com.mysql.cj.jdbc.Driver
我這裏用的是mysql-connector-java-8.0.22.jar,下面IDEA演示操作:
1、添加jar包至library庫中。
我事先在項目中創建了名為jdbc_test模塊。
(1)選擇File-》Project Structure
(2)選擇Libraries-》點擊‘+’號-》Java
(3)選擇下載好的mysql驅動,點擊OK
(4)選擇jdbc_test模塊,點擊OK
最後別忘了Apply和OK,這樣成功添加進來了。
2、連接代碼測試示例:
public class JDBCTest01 {
public static void main(String[] args) throws SQLException {
Connection conn = null;
Statement stmt = null;
// 1、注册驅動
Driver driver = new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver(driver);
// 2、獲取連接
String url = "jdbc:mysql://127.0.0.1:3306/bookstore?serverTimezone=UTC";
String user = "root";
String password = "xxx"; // 自己的數據庫密碼
conn = DriverManager.getConnection(url, user, password);
System.out.println("數據庫連接對象:" + conn);
// [email protected]
// 3、獲取數據庫操作對象
// Statement createStatement() 創建一個 Statement 對象來將 SQL 語句發送到數據庫。
stmt = conn.createStatement();
// 4、執行sql語句
// int executeUpdate(String sql)
// 專門執行DML語句,返回值是“影響數據庫中的記錄條數”
// int count = stmt.executeUpdate("update dept set dname = '銷售部',loc = '合肥' where deptno = 20;");
int count = stmt.executeUpdate("update users set username= 'mike' where id=13;");
System.out.println(count == 1 ? "保存成功":"保存失敗");
// 5、處理查詢結果集
// 6、釋放資源
// 從小到大,從後往前依次關閉
try {
stmt.close();
}
catch (SQLException e) {
e.printStackTrace();
}
if(conn != null) {
try {
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
}
}
如果啟動報時區錯誤的話,在你連接數據庫的url後加上參數 ?serverTimezone=UTC。
3、執行結果:
版權聲明
本文為[CamphorBloom]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201280810278721.html
邊欄推薦
猜你喜歡
隨機推薦
- uniapp上傳圖片及組件傳值
- 瑞利年金險資金保障安全嗎?收益高不高啊?
- 華為手機USB連不上電腦的解决方法
- Flutter 2,移動金融應用開發
- 關於st25系列NFC標簽簡單介紹及st25TV系列用於門禁讀取時的注意事項總結
- 關於用ffmpeg轉手機視頻發現視頻長寬倒了的問題
- 函數 / 類模板--模板2
- 數組中的第k個最大的元素--優先級隊列、排序、堆、排序
- 單片機實例27——ADC0809A/D轉換器基本應用技術(硬件電路圖+匯編程序+C語言程序)
- Collection集合的學習
- 一場面試結束,某度員工從事Android 5年為何還是初級工程師?
- 3本書閱讀筆記【人月神話-Go語言實戰-研發能力持續成長路線】01
- PHP垃圾回收機制
- 【電子技術】什麼是LFSR?
- 死鎖?如何定比特到死鎖?如何修複死鎖?(jps和jstack兩個工具)
- 快樂寒假 22/01/20
- image
- 噴程序員?SURE?
- LDO分壓電阻計算小工具
- 面試之求一串字符串中每個字符的出現次數
- 【ISO15765_UDS&OBD診斷】-01-概述
- 【Mysql上分之路】第九篇:Mysql存儲引擎
- RHCE 第一次作業
- 2021.10.16我的第一篇博客:一切皆有可能!
- CTA-敏感行為-讀取IMEI
- 面試被問怎麼排查平時遇到的系統CPU飆高和頻繁GC,該怎麼回答?
- nuxt項目總結-綜合
- 自然語言處理學習筆記(一)
- C語言第一課
- 各比特大佬,Spark的重點難點系列暫時更新完畢
- 基於 esbuild 的 universal bundler 設計
- XCTFre逆向(四):insanity
- 理解什麼是真正的並發數
- JVM腦圖
- 【Pytorch(四)】學習如何使用 PyTorch 讀取並處理數據集
- 函數棧幀的創建與銷毀
- 構建神經網絡- 手寫字體識別案例
- 多模態生成模型ERNIE-VILG
- kotlin不容忽視的小細節
- 備戰一年,終於斬獲騰訊T3,我堅信成功是可以複制的