需求:
常用的連線池有:c3p0(佔80%以上的使用率,是比較常用的)、dbcp
主要的模型圖如下:
**如下:
二種方式:裝飾者模式方式.public
class
mydatasource
implements
datasource
}@override
// 獲得連線的方法:
public connection getconnection()
throws sqlexception
} connection conn = list.
remove(0
);return conn;
}// 歸還連線的方法:
public
void
addback
(connection conn)..
.}
三種方式:動態**的方式.
當然嫌麻煩,你可以使用別人已經封裝好的。日常的框架程式中,我們也是用c3p0和dbcp也更多一些。/**
* 繼承的方式增強乙個類中某個方法:
*/class
man}
class
superman
extends
man}
/** * 使用裝飾者的方式完成類的方法的增強
*/inte***ce
waiter
class
waiteress
implements
waiter
}class
implements
waiter
@override
public
void
server()
}【使用裝飾者模式增強connection的close方法】
public
class
myconnection
implements
connection
連線池的getconnection方法:
@override
// 獲得連線的方法:
public connection getconnection()
throws sqlexception
} connection conn = list.
remove(0
);myconnection myconn =
newmyconnection
(conn, list)
;return myconn;
}@override
public
void
close()
throws sqlexception ..
.}
【dbcp連線池的使用】
第一步:引入dbcp連線池的jar包.
第二步:編寫dbcp**.
【c3p0連線池的使用】@test
/** * 手動方式:
*/public
void
demo1()
}catch
(exception e)
finally
}@test
/** * 配置檔案方式:
*/public
void
demo2()
}catch
(exception e)
finally
}
**第一步:引入c3p0連線池的jar包.
**第二步:編寫**.
【c3p0改造工具類】
resultsethandlerpublic
class
jdbcutils2
catch
(sqlexception e)
return conn;}.
..
總結:
對Java執行緒池的理解
1.runnable 是執行緒嗎?runnable不是執行緒,thread 才是。比如單一執行緒池 executor 會在內部建立乙個 thread 這個thread 會從乙個任務佇列中取出使用者提交的任務並執行,如果在執行的過程中出現異常,executor 會自動啟動新執行緒繼續執行 2.thre...
Java多執行緒及執行緒池
提問 我開啟了乙個qq 又開啟了乙個遊戲,請問我開啟了兩個執行緒嗎?回答 概念理解錯誤,你其實開啟是兩個程序,為什麼呢,請看概念 程序是正在執行的程式,是系統呼叫資源和進行資源分配的基本單位。比如所說的qq 和乙個遊戲,這就是兩個正在執行的程式。我們的作業系統都是多程序的。繼續提問 早期的計算機是單...
執行緒池的理解及使用
1.初識執行緒池 根據系統自身的環境情況,有效的限制執行執行緒的數量,使得執行效果達到最佳。執行緒主要是通過控制執行的執行緒的數量,超出數量的執行緒排隊等候,等待有任務執行完畢,再從佇列最前面取出任務執行。2.執行緒池作用 減少建立和銷毀執行緒的次數,每個工作執行緒可以多次使用 可根據系統情況調整執...