********************************************************************************************
数据库连接池
测试:ceun.test.Test
配置文件:mydb.properties
create time:2005-04-20
author:Java619
用到的第三包:com.javaexchange.dbConnectionBroker.DbConnectionBroker
********************************************************************************************/
连接数据库是我们经常要用到的,而利用数据库连接池则可以更有效地使用数据库连接,提高程序性能。下面我提供一个数据库连接池实例,以供大家参考。
1.首先新建一个properties文件:mydb.properties
db.driver
=
org.gjt.mm.mysql.Driver #使用mmmysql JDBC Driver
db.url
=
jdbc:mysql://localhost/jspdev #jspdev为你的数据库名
db.user
=
root #用户名
user.password
=
#密码
minimun.pool.size
=
2
#最小连接数
maximum.pool.size
=
10
#最大连接数
maxConnTime
=
1.0
#最长连接时间
db.logfile
=
D:/works/DCB_Example.log #日志文件
2.连接池管理Bean:DbManager.java
/**/
/*
* DBManager.java
*@author Java619
* Created on 2005年4月20日
*/

package
ceun.util.db;
import
java.sql.
*
;
import
java.io.
*
;
import
java.util.
*
;
import
com.javaexchange.dbConnectionBroker.
*
;
import
ceun.util.
*
;
public
class
DBManager
...
{
private int minConns,maxConns;
private double maxConnTime;
private String driver;
private String url;
private String user;
private String password;
private String db_logfile;
private DbConnectionBroker myBroker=null;
private static DBManager instance=null;

private DBManager()...{
init();
config();
}
//???
public static synchronized DBManager getInstance()...{
if(instance==null)
instance=new DBManager();
return instance;
}

private void init()...{
try...{
Properties p=new Properties();//读取mydb.properties属性文件
InputStream fin=getClass().getResourceAsStream("/mydb.properties");
p.load(fin);
driver=p.getProperty("db.driver");
url=p.getProperty("db.url");
user=p.getProperty("db.user");
password=p.getProperty("user.password");
db_logfile=p.getProperty("db.logfile");
minConns=Integer.parseInt(p.getProperty("minimun.pool.size"));
maxConns=Integer.parseInt(p.getProperty("maximum.pool.size"));
maxConnTime=Double.parseDouble(p.getProperty("maxConnTime"));
fin.close();
}catch(Exception e)...{System.out.println("can't not load properties file!");}
}

private void config()...{
try ...{
myBroker = new DbConnectionBroker(driver,url,user
,password,minConns,maxConns,
db_logfile,maxConnTime);
} catch (IOException e5) ...{
System.out.println("can't not set confog");
}
}

public Connection getCon()...{
Connection con=null;
con = myBroker.getConnection();
return con;
}

public void freeCon(Connection con)...{
myBroker.freeConnection(con);
}
}
测试用例
/**/
/*
* TestPool.java
*@author Java619
* Created on 2005年4月20日
*/
package
ceun.test;
import
java.sql.
*
;
import
java.io.
*
;
import
java.util.
*
;
import
ceun.util.db.
*
;
public
class
TestPool
...
{
public void search() 
...{
Connection conn = null;
Statement stmt = null;
DBManager man =DBManager.getInstance();

try...{
conn = man.getCon();
stmt = conn.createStatement();
//假设数据库jspdev(对应你自己的数据库名)有一包含name字段的user表,
ResultSet rst = stmt.executeQuery("select * from user;");
while(rst.next())...{
System.out.println(rst.getString("name")+" okok");
}
//if(rst!=null)
//rst.close();
if(stmt!=null) stmt.close();
man.freeCon(conn);
}catch(Exception e)...{}
}
}
上面用到的com.javaexchange.dbConnectionBroker类,自己可以到
或向我索取,发信息到ceunlove@163.com即可!(注明要com.javaexchange.dbConnectionBroker类)
本文介绍了一个简单的数据库连接池实现方案,包括配置文件设置、连接池管理Bean开发及测试用例。通过合理配置连接池参数,可以有效提升应用程序的数据库访问性能。
836

被折叠的 条评论
为什么被折叠?



