关于数据库连接池创建(楼主采用JDBC+ODBC桥接方式连接数据库)
2013-07-18 11:10
477 查看
废话不多说直接上代码
数据库连接封装类
publicclass ConnectionProvider {
//数据
publicstaticfinal String
DRIVER =
"sun.jdbc.odbc.JdbcOdbcDriver";
publicstaticfinal String
URL =
"jdbc:odbc:storedb";
publicstaticfinal String
USER =
"";
publicstaticfinal String
PASSWD =
"";
//加载驱动
//用静态块可以确保只加载一次
static {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//获取连接
public Connection getConnection()
throws SQLException{
return DriverManager.getConnection(URL,USER,PASSWD);
}
}
连接池类
package fei.db;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
/**
* @author
fei
*
连接池设计
*
*/
publicclass ConnectionPool {
//连接集合
private ArrayList<Connection>
pool =
new ArrayList<Connection>();
//连接最大个数
privateintmax;
//连接提供者
private ConnectionProvider
provider =
new ConnectionProvider();
public ConnectionPool(int max){
this.max = max ;
}
//取出空闲连接
public Connection getConnection()
throws SQLException{
Connection conn =
null;
synchronized (pool) {//加锁因为是多用户操作
if(!pool.isEmpty()){
conn =
pool.remove(0);//取连接,第一个肯定有
return conn;
}
}
//如果池中为空
conn =
provider.getConnection();
return conn;
}
//放回连接池
publicvoid release(Connection conn)
throws SQLException{
synchronized (pool) {
if(pool.size() <
max){
pool.add(conn);
}
else{
conn.close();
}
}
}
//关闭连接池
publicvoid closeConn()
throws SQLException{
synchronized (pool) {
for (Connection conn :
pool) {
if(!pool.isEmpty()){
pool.remove(conn);
conn.close();
}
}
}
}
}
测试(代码段)
//使用连接池
ConnectionPool pool =
new ConnectionPool(10);
for (int i = 0; i < 500; i++) {
Connection conn = pool.getConnection();
Statement stm = conn.createStatement();
stm.executeUpdate(sql);
pool.release(conn);
}
pool.closeConn();
数据库连接封装类
publicclass ConnectionProvider {
//数据
publicstaticfinal String
DRIVER =
"sun.jdbc.odbc.JdbcOdbcDriver";
publicstaticfinal String
URL =
"jdbc:odbc:storedb";
publicstaticfinal String
USER =
"";
publicstaticfinal String
PASSWD =
"";
//加载驱动
//用静态块可以确保只加载一次
static {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//获取连接
public Connection getConnection()
throws SQLException{
return DriverManager.getConnection(URL,USER,PASSWD);
}
}
连接池类
package fei.db;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
/**
* @author
fei
*
连接池设计
*
*/
publicclass ConnectionPool {
//连接集合
private ArrayList<Connection>
pool =
new ArrayList<Connection>();
//连接最大个数
privateintmax;
//连接提供者
private ConnectionProvider
provider =
new ConnectionProvider();
public ConnectionPool(int max){
this.max = max ;
}
//取出空闲连接
public Connection getConnection()
throws SQLException{
Connection conn =
null;
synchronized (pool) {//加锁因为是多用户操作
if(!pool.isEmpty()){
conn =
pool.remove(0);//取连接,第一个肯定有
return conn;
}
}
//如果池中为空
conn =
provider.getConnection();
return conn;
}
//放回连接池
publicvoid release(Connection conn)
throws SQLException{
synchronized (pool) {
if(pool.size() <
max){
pool.add(conn);
}
else{
conn.close();
}
}
}
//关闭连接池
publicvoid closeConn()
throws SQLException{
synchronized (pool) {
for (Connection conn :
pool) {
if(!pool.isEmpty()){
pool.remove(conn);
conn.close();
}
}
}
}
}
测试(代码段)
//使用连接池
ConnectionPool pool =
new ConnectionPool(10);
for (int i = 0; i < 500; i++) {
Connection conn = pool.getConnection();
Statement stm = conn.createStatement();
stm.executeUpdate(sql);
pool.release(conn);
}
pool.closeConn();
相关文章推荐
- jdbc连接数据库和jdbc-odbc桥接方式连接数据库
- jdbc连接数据库和jdbc-odbc桥接方式连接数据库
- jdbc-odbc桥接方式连接数据库
- 使用JDBC-ODBC桥接的方式连接数据库
- 关于ODBC和JDBC连接actian vortex数据库的bug报告
- JDBC-ODBC桥接方法连接Excel数据库的方法
- JavaWeb之JDBC(二)采用读取配置文件方式编写JDBC的工具类,获取数据库的连接
- 关于使用JDBC方式连接MSSQL数据库
- 使用JDBC-ODBC方式连接数据库时,如何在代码中指定ODBC数据源信息
- java(jdbc jndi odbc)数据库连接方式
- JDBC-ODBC方式连接数据库工作原理解释
- JDBC-ODBC方式连接数据库工作原理解释
- 《关于在MFC中使用ODBC方式连接数据库可能出现的问题》第一篇
- Java中数据库连接池原理机制的详细讲解以及项目连接数据库采用JDBC常用的几种连接方式
- JDBC-ODBC方式连接数据库工作原理解释
- 关于数据库连接的几种方式 ODBC / DAO / RDO / OLEDB / ADO
- 关于JDBC和JDBC-ODBC连接数据库
- JDBC连接各种数据库的方式
- Eclipse使用(七)—— 使用Eclipse创建JavaWeb项目并使用JDBC连接数据库实现简单的登陆注册功能
- 各种数据库使用JDBC连接的方式