資料庫連線池和DBUtils

2021-10-07 02:40:26 字數 3442 閱讀 2744

dbcp資料來源連線池

dbcp配置檔案的使用

c3p0資料來源

c3p0資料庫配置檔案使用

dbutils工具

resultsethandler介面

dbutils的**過程

dbutils的**實現

當使用jdbc連線資料庫的時候,當有1000的使用者,你就要建立1000會連線物件和銷毀物件,這樣會使資料庫訪問效率大大降低。

c3p0資料來源和dbcp資料來源

database connection pool

需要匯入的jar包,common-dbcp-.jar; commons-pool.jar.

demo檔案

public class demo 

public static void main(string args) throws sqlexception

}

dbcpdemo檔案

public class dbcpdemo  catch (exception e) 

}public static void main(string args) throws sqlexception

}

basicdatasource.properties檔案

在這裡插入 #連線設定

driverclassname=com.mysql.jdbc.driver

url=jdbc:mysql://localhost:3306/yun6

username=root

password=root

#初始化連線

initialsize=5

#最大連線數量

maxactive=10

#最大空閒連線

maxidle=10**片

public class c3p0demo  catch (propertyvetoexception e) 

}public static void main(string args) throws sqlexception

}

c3p0-config.xml檔案

<?xml version="1.0" encoding="utf-8"?>

com.mysql.jdbc.driver

jdbc:mysql://localhost:3306/yun6

root

root

30000

1030

10010

200

com.mysql.jdbc.driver

jdbc:mysql://localhost:3306/yun6

root

root515

c3p0xmldemo檔案

public class c3p0xmldemo 

public static void main(string args) throws sqlexception

}

c3p0xmldemo1檔案

public class c3p0xmldemo1 

public static void main(string args) throws sqlexception

}

runnerquery介面是dbutils的核心類,減少運算元據庫**的操作量,主要是jdbc**進行封裝,通常與resultsethandler介面配合使用。(對connection,sql語句,statement,preparestatement,resultset ,param等進行封裝)

user類

public class user 

public void setid(int id)

public string getname()

public void setname(string name)

public string getpassword()

public void setpassword(string password)

}

jdbcutils類:(將資料庫驅動,配置引數,釋放資源封裝到這個類中)

public class jdbcutils 

// 關閉資料庫連線,釋放資源

public static void release(statement stmt, connection conn) catch (sqlexception e)

stmt = null;

}if (conn != null) catch (sqlexception e)

conn = null;

}} public static void release(resultset rs, statement stmt,

connection conn) catch (sqlexception e)

rs = null;

}release(stmt, conn);

}}

basedao類:相當與編寫了ruuerquery中的query()方法,

public class basedao 

// 傳送sql

rs = pstmt.executequery();

// 讓呼叫者去實現對結果集的處理

object obj = rsh.handle(rs);

return obj;

} catch (exception e) finally

return rs;}}

bandhandler: 隨結果集進行處理

public class resultsettest1 

public static void main(string args) throws sqlexception

}

bandlisthandler: 隨結果集進行處理

public class resultsettest2 

}public static void main(string args) throws sqlexception

}

scalarhandler: 隨結果集進行處理

public class resultsettest3 

public static void main(string args) throws sqlexception

}

DBUtils資料庫連線池

使用資料庫連線池技術,可以重複使用多個資料庫連線,避免每次執行資料庫操作都建立連線和關閉連線,也避免了大型應用同時占用多個資料庫連線。以連線mysql為例 import pymysql from dbutils.pooleddb import pooleddb pool pooleddb creat...

DBUtils資料庫連線池

使用資料庫連線池技術,可以重複使用多個資料庫連線,避免每次執行資料庫操作都建立連線和關閉連線,也避免了大型應用同時占用多個資料庫連線。以連線mysql為例 import pymysql from dbutils.pooleddb import pooleddb pool pooleddb creat...

Python資料庫連線池DBUtils

dbutils是python的乙個用於實現資料庫連線池的模組。此連線池有兩種連線模式 如果沒有連線池,使用pymysql來連線資料庫時,單執行緒應用完全沒有問題,但如果涉及到多執行緒應用那麼就需要加鎖,一旦加鎖那麼連線勢必就會排隊等待,當請求比較多時,效能就會降低了。usr bin env pyth...