1.由來:
乙個使用者至少要用到乙個連線。當使用者過多時,需要建立巨大數量的連線物件,這會使資料庫承受極大的壓力,為了解決這種現象,出現了資料庫連線池。
2.定義:
在使用者和資料庫之間建立乙個」池」,這個池中有若干個連線物件,當使用者想要連線資料庫,就要先從連線池中獲取連線物件,然後運算元據庫。即資料庫連線池就是提供連線的
3.自定義連線池例:
public
class mypool
}//2. 建立乙個新的連線的方法
private connection createconnection(), // 目標物件實現的介面
new invocationhandler() else
return result;}}
);return proxy;
} catch (exception e)
}//3. 獲取連線
public connection getconnection()
// 3.2 連線池中沒有連線: 判斷,如果沒有達到最大連線數,建立;
if (current_count < max_count)
// 3.3 如果當前已經達到最大連線數,丟擲異常
throw
new runtimeexception("當前連線已經達到最大連線數目 !");
}//4. 釋放連線
public
void
realeaseconnection(connection con) else catch (sqlexception e) }}
public
static
void
main(string args) throws sqlexception
}
4.dbcp連線池(1)引入jar包:
• commons-dbcp.jar:連線池的實現
• commons-pool.jar:連線池實現的依賴庫
(2)核心類:basicdatasource
例:
public
class
dbcp
@test
// 2. 【推薦】配置方式實現連線池
public
void
testprop() throws exception
}
5.c3p0連線池(1)優點:最常用的連線池技術!spring框架,預設支援c3p0連線池技術!
(2)核心類:combopooleddatasource
例:
public
class
c3p0
@test
//2. xml配置方式,使用c3p0連線池管理連線
public
void
testxml() throws exception
}
1.優點:利於頁面布局,且顯示的效率高!
2.要點:
關鍵點:
(1) 分頁sql語句;
(2) 後台處理: dao/service/servlet/jsp
3.乙個初步的例子
例:(1)建立分頁的屬性及方法
public
class pagebean else
return totalpage;
}public
void
settotalpage(int totalpage)
public
intgetcurrentpage()
public
void
setcurrentpage(int currentpage)
public
intgetpagecount()
public
void
setpagecount(int pagecount)
public
intgettotalcount()
public
void
settotalcount(int totalcount)
public listgetpagedata()
public
void
setpagedata(listpagedata)
}
(2)具體的分頁操作
public
class employeedao else
if (pb.getcurrentpage() > pb.gettotalpage())
//1. 獲取當前頁: 計算查詢的起始行、返回的行數
int currentpage = pb.getcurrentpage();
int index = (currentpage -1 ) * pb.getpagecount(); // 查詢的起始行
int count = pb.getpagecount(); // 查詢返回的行數
//3. 分頁查詢資料; 把查詢到的資料設定到pb物件中
string sql = "select * from employee limit ?,?";
try catch (exception e)
}public
intgettotalcount() catch (exception e) }}
本人才疏學淺,若有錯誤,請指出
謝謝!
JDBC連線池實現
jdbc connection pool 的注意事項有 1.有乙個簡單的函式從連線池中得到乙個 connection。2.close 函式必須將 connection 放回 資料庫連線池。3.當資料庫連線池中沒有空閒的 connection,資料庫連線池必須能夠自動增加 connection 個數。...
jdbc連線池引數
jdbc連線池引數 jdbc.initialsize 0 初始化連線 jdbc.maxactive 30 連線池的最大資料庫連線數,設為0表示無限制 jdbc.maxidle 20 沒有人用連線的時候,最大閒置的連線個數,設定為0時,表示沒有限制。jdbc.maxwait 1000 超時等待時間以毫...
JDBC連線池學習
如果不採用連線池技術,將導致不斷建立和銷毀資料庫connection,造成效能上的損耗。而資料庫連線池技術將在池中建立一定數量的connection,當需要connection時就從池中取出乙個,用完之後歸還給連線池,而不是將其銷毀。自定義資料庫連線池的具體步驟分析 a.定義mydatasource...