JDBC基礎入門 2

2021-10-07 05:19:33 字數 4038 閱讀 6818

概念:負責分配、管理和釋放資料庫連線,允許應用程式重複使用乙個現有的資料庫連線,而不是重新建立乙個。

作用:能明顯提高對資料庫操作的效能。

① 定義乙個類,實現 datasource 介面。

​ ② 定義乙個容器,用於儲存多個 connection 連線物件。

​ ③ 定義靜態**塊,通過 jdbc 工具類獲取 10 個連線儲存到容器中。

​ ④ 重寫 getconnection 方法,從容器中獲取乙個連線並返回。

​ ⑤ 定義 getsize 方法,用於獲取容器的大小並返回。

匯入jar包

配置資訊

(注-匯入配置檔案到src目錄下:c3p0 的配置檔案會自動載入,但是必須叫 c3p0-config.xml 或 c3p0-config.properties )

建立c3p0的資料庫庫連線池物件

//建立c3p0的資料庫連線池物件

datasource datasource =

newcombopooleddatasource()

;

通過連線池物件獲取資料庫連線物件
//通過連線池物件獲取資料庫連線

connection con = datasource.

getconnection()

;

獲取資料庫連線進行使用
//執行操作

string sql =

"select * from student"

; preparedstatement pst = con.

preparestatement

(sql)

;//執行sql語句,接收結果集

resultset rs = pst.

executequery()

;//處理結果集

while

(rs.

next()

)//釋放資源

rs.close()

; pst.

close()

; con.

close()

;

提取資料庫連線池工具類

目的:簡化(封裝)datasource的建立步驟,乙個程式中只需要維護乙個datasource

/*

資料庫連線池的工具類

*/public

class

datasourceutils

//2.宣告資料來源變數

private

static datasource datasource;

//3.提供靜態**塊,完成配置檔案的載入和獲取資料庫連線池物件

static

catch

(exception e)

}//4.提供乙個獲取資料庫連線的方法

public

static connection getconnection()

catch

(sqlexception e)

return con;

}//5.提供乙個獲取資料庫連線池物件的方法

public

static datasource getdatasource()

//6.釋放資源

public

static

void

close

(connection con, statement stat, resultset rs)

catch

(sqlexception e)}if

(stat != null)

catch

(sqlexception e)}if

(rs != null)

catch

(sqlexception e)}}

public

static

void

close

(connection con, statement stat)

catch

(sqlexception e)}if

(stat != null)

catch

(sqlexception e)

}}

背景**實現

// jdbc框架類

public

class

jdbctemplate

//查詢方法:用於將聚合函式的查詢結果進行返回

public long queryforscalar

(string sql, resultsethandler

rsh, object.

..objs)

//為sql語句佔位符賦值

for(

int i =

0; i < objs.length; i++

)//執行sql語句並接收結果

rs = pst.

executequery()

;//通過scalarhandler方式對結果進行處理

value = rsh.

handler

(rs);}

catch

(exception e)

finally

//返回結果

return value;

}// 查詢方法:用於將多條記錄封裝成自定義物件並新增到集合返回

public

list

queryforlist

(string sql, resultsethandler

rsh, object.

..objs)

//為sql語句佔位符賦值

for(

int i =

0; i < objs.length; i++

)//執行sql語句並接收結果

rs = pst.

executequery()

;//通過beanlisthandler方式對結果進行處理

list = rsh.

handler

(rs);}

catch

(exception e)

finally

//返回結果

return list;

}// 查詢方法:用於將一條記錄封裝成自定義物件並返回

public

t queryforobject

(string sql, resultsethandler

rsh,object.

..objs)

//為sql語句佔位符賦值

for(

int i =

0; i < objs.length; i++

)//執行sql語句並接收結果

rs = pst.

executequery()

;//通過beanhandler方式對結果進行處理

obj = rsh.

handler

(rs);}

catch

(exception e)

finally

//返回結果

return obj;

}//用於執行增刪改功能的方法

//3.定義update方法。引數:sql語句、sql語句中的引數

public

intupdate

(string sql,object.

..objs)

//10.為sql語句佔位符賦值

for(

int i =

0; i < objs.length; i++

)//11.執行sql語句並接收結果

result = pst.

executeupdate()

;}catch

(exception e)

finally

//13.返回結果

return result;

}}

JDBC 快速入門

資料庫連線池的概念 1 資料庫連線的背景 2 資料庫連線池 資料庫連線產品 c3p0資料庫連線池 通過直接建立combopooleddatasource物件來獲取連線 public class c3p0test1 6.釋放資源 rs.close pst.close con.close druid連線...

jdbc快速入門

1.jdbc的概念 2.jdbc的本質3.jdbc的快速入門程式 匯入jar包 註冊驅動 class.forname com.mysql.jdbc.driver 獲取連線 connection con drivermanager.getconnection jdbc mysql localhost ...

iOS Core Graphics基礎入門(2)

繪製三角形 建立乙個畫布 cgcontextref context uigraphicsgetcurrentcontext 建立圖形路徑 cgcontextbeginpath context 設定繪製起點 cgcontextmovetopoint context,100,100 新增線條節點 cgc...