淺談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框架、資料庫事務、資料庫連線池JDBC框架資料庫
- JDBC資料庫連線池實現JDBC資料庫
- 資料庫連線池淺析資料庫
- 淺談資料庫連線資料庫
- JDBC【資料庫連線池、DbUtils框架、分頁】JDBC資料庫框架
- Java 的JDBC 資料庫連線池實現方法JavaJDBC資料庫
- JDBC連線資料庫JDBC資料庫
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- java jdbc連線資料庫JavaJDBC資料庫
- 資料庫連線池資料庫
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 【JDBC】java連線池模擬測試連線Oracle資料庫指令碼參考JDBCJavaOracle資料庫指令碼
- 【JavaWeb】JDBC連線MySQL資料庫JavaWebJDBCMySql資料庫
- JDBC之連線sqlserver資料庫JDBCSQLServer資料庫
- JDBC連線資料庫步驟JDBC資料庫
- JDBC連線資料庫經驗JDBC資料庫
- JDBC 連線資料庫的類JDBC資料庫
- JDBC連線各資料庫大全JDBC資料庫
- jdbc獲取資料庫連線JDBC資料庫
- 資料庫連線池原理資料庫
- Proxool資料庫連線池資料庫
- JAVA資料庫連線池Java資料庫
- Flask資料庫連線池Flask資料庫
- java Jdbc連線oracle資料庫連線測試JavaJDBCOracle資料庫
- JDBC連線MySQL資料庫的方法和例項JDBCMySql資料庫
- 常用資料庫JDBC連線寫法資料庫JDBC
- JDBC---jsp資料庫連線JDBCJS資料庫
- JDBC連線三種資料庫例子JDBC資料庫
- jdbc-odbc連線資料庫 (轉)JDBC資料庫
- python資料庫連線池Python資料庫
- 手寫資料庫連線池資料庫
- 瞭解資料庫連線池資料庫
- 資料庫連線池的理解資料庫
- 資料庫連線池的使用資料庫
- WASCE的資料庫連線池資料庫
- JNDI配置資料庫連線池資料庫