淺談JDBC和資料庫連線池
淺談JDBC和資料庫連線池
一、JDBC的概念
JDBC,全稱"Java Database Connectivity",意為"java與資料庫的連線",是java中用來規範客戶端程式如何來訪問資料庫的應用程式介面,提供了諸如查詢和更新資料庫中資料的方法。jdbc介面的具體方法由各大資料庫廠商去實現,即資料庫驅動,開發人員無需理會具體實現方法,只需學會呼叫相應介面的方法即可。
要使用jdbc,需要匯入相應資料庫的驅動包
二、JDBC使用步驟
-
匯入要操作的資料庫的驅動包
-
載入、註冊資料庫驅動(以mysql資料庫為例)
Class.forname("com.mysql.jdbc.dirver");
-
獲取jdbc與資料庫的連線物件
Connection conn = DriverManager.getConnection(url,username,password);//url是資料庫地址
-
建立執行sql語句的物件(負責把sql語句送到資料庫去給資料庫編譯)
- statement物件 (不安全,有sql注入風險)
Statement st = conn.createStatement();
2.preparedStatement物件 (安全,用得較多)
PreparedStatement pst = conn.prepareStatement(String sql);//預編譯 sql語句待傳引數用佔位符?替換
-
處理結果
-
statement物件
int num = st.executeUpdate(String sql);//執行增刪改方法,返回資料庫受影響行數 ResultSet rs = st.executeQuery(String sql);//執行查詢方法,放回查詢結果 ResultSet是連結串列結構
-
preparedStatement物件
String sql = "selet * from user where id = ?"; pst.setInt(1,20);//第一個參數列示給第一個?傳值,第二個參數列示具體值 int num =pst.executeUpdate()//執行增刪改方法,返回資料庫受影響行數 注意,括號內不能傳引數 ResultSet rs = st.executeQuery(String sql);//執行查詢方法,放回查詢結果 ResultSet是連結串列結構
-
-
釋放jdbc物件的連線 (順序和建立時剛好相反)
rs.close(); pst.close(); conn.close();
三、資料庫連線池
傳統應用中每次每個使用者想要運算元據庫,都需要建立一個與資料庫的連線,操作完畢之後再斷開連線,這對於系統開銷其實是很大的,資料庫連線池便應運而生。"資料庫連線池負責分配、管理和釋放資料庫連線,它允許應用程式重複使用一個現有的資料庫連線,而不是再重新建立一個"這是百度百科給的概念。通俗來講,可以理解為程式建立了一個池子,然後事先建立了很多connection物件,放在這個池子裡面,當使用者需要時直接從池子中取,使用完釋放連線時並不銷燬這個connection物件,而是把它放回連線池裡,這樣可以大大節省系統資源的開銷,提高系統效能。
資料庫連線池底層是實現了一個叫DataSource的介面。 使用者可以自定義連線池的最大連線數和最小連線數、超時等待時間等屬性。不設定則採用預設值當連線供不應求(也就是請求連線數大於池子中連線總數)時,使用者需要排隊等待。
如今流行的資料庫連線池技術有很多,主流的有Druid(阿里的),HiKariCP(號稱效能最好),dbcp(apache出品),c3p0。
相關文章
- JDBC連線資料庫JDBC資料庫
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- JDBC之連線sqlserver資料庫JDBCSQLServer資料庫
- 【JDBC】java連線池模擬測試連線Oracle資料庫指令碼參考JDBCJavaOracle資料庫指令碼
- JDBC連線MySQL資料庫的方法和例項JDBCMySql資料庫
- 資料庫連線池原理資料庫
- Flask資料庫連線池Flask資料庫
- python資料庫連線池Python資料庫
- java jdbc深入理解(connection與threadlocal與資料庫連線池和事務實)JavaJDBCthread資料庫
- Tomcat 的 JDBC 連線池TomcatJDBC
- 使用ABAP(ADBC)和Java(JDBC)連線SAP HANA資料庫JavaJDBC資料庫
- 聊聊資料庫連線池 Druid資料庫UI
- 資料庫連線池實現資料庫
- Javaweb-資料庫連線池JavaWeb資料庫
- 手寫資料庫連線池資料庫
- Python資料庫連線池DButilsPython資料庫
- JDBC連線批量處理資料入庫JDBC
- 【Mybatis原始碼解析】- JDBC連線資料庫的原理和操作MyBatis原始碼JDBC資料庫
- JDBC連結資料庫JDBC資料庫
- MySql資料庫連線池專題MySql資料庫
- Java Druid資料庫連線池+SpringJDBCJavaUI資料庫SpringJDBC
- JavaWeb之事務&資料庫連線池JavaWeb資料庫
- mysql資料庫連線池配置教程MySql資料庫
- JDBC中連線資料庫的常用jar包JDBC資料庫JAR
- jdbc連線oracle rac資料庫的寫法JDBCOracle資料庫
- 資料庫連線分析(1)-從JDBC到MyBatis資料庫JDBCMyBatis
- openGauss資料庫JDBC環境連線配置(Eclipse)資料庫JDBCEclipse
- 資料庫連線池設計和實現(Java版本)資料庫Java
- java 資料庫程式設計(一)JDBC連線Sql Server資料庫Java資料庫程式設計JDBCSQLServer
- 帶你進入資料庫連線池資料庫
- 資料庫連線池技術詳解資料庫
- Spring Boot整合Druid資料庫連線池Spring BootUI資料庫
- druid資料庫連線池的配置類UI資料庫
- Springboot 整合阿里資料庫連線池 druidSpring Boot阿里資料庫UI
- Druid資料庫連線池使用體驗UI資料庫
- JDBC連線資料庫實現增刪改查JDBC資料庫