JDBC詳解 連線池與分頁

2021-07-31 08:56:29 字數 2992 閱讀 3597

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...