900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 03_dbcp数据源依赖jar包 DBCP中API介绍 不同过dbcp方式使用dbcp数据库连接池 通过

03_dbcp数据源依赖jar包 DBCP中API介绍 不同过dbcp方式使用dbcp数据库连接池 通过

时间:2019-02-19 18:11:39

相关推荐

03_dbcp数据源依赖jar包 DBCP中API介绍 不同过dbcp方式使用dbcp数据库连接池 通过



DBCP数据源

使用DBCP数据源,需要导入两个jar包

Commons-dbcp.jar:连接池的实现

Common-pool.jar:连接池实现的依赖库。

导入mysql的jar包。

DBCP核心API

BasciDataSource 它可以通过实例化对象的方式获得一个对象。

它里面有如下方法:

setDriverClassName(String driverClassName) 设置驱动类的名称。

setInitialSize(int initialSize) 设置初始化时的链接数目。

setMaxActive(int maxIdle) 设置最大的并发访问数量。

setMaxIdle(int maxIdle): 设置最大的闲置数目。

setPassword:用于设置密码。

setUrl:设置url

setUsername:设置用户名。

数据源实现BasicDataSourceFactory 用于创建数据源的工厂类,

不设配置文件时使用BasicDataSource的程序的写法:

packagecn.toto.utils;

importjava.sql.Connection;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjavax.sql.DataSource;

importmons.dbcp.BasicDataSource;

publicclassJdbcUtils {

privateJdbcUtils(){}

//定义BasicDataSource的父类接口的形式,获得ds的参数。

privatestaticDataSourceds;

static{

//要想使用写好的数据源的功能,得先初始化一个dbcp连接池

BasicDataSource bds =newBasicDataSource();

//设置一系列参数

bds.setDriverClassName("com.mysql.jdbc.Driver");

bds.setUrl("jdbc:mysql://localhost:3306/day14");

bds.setUsername("root");

bds.setPassword("123456");

//设置初始化大小

bds.setInitialSize(5);//初始时设置5个连接数

bds.setMaxActive(20);//设置并发访问数目。

//bds.setMaxWait(0);//设置最大等待时间。不等待。

ds= bds; //获得数据是通过父接口的DataSource接口。

}

//获得连接池

publicstaticDataSource getDataSource(){

returnds;

}

//获得与指定数据库的连接

publicstaticConnection getConnection()throwsSQLException{

//从连接池返回一个连接

returnds.getConnection();

}

publicstaticvoidrelease(ResultSet rs,Statement stmt,Connection conn){

if(rs!=null) {

try{

rs.close();

}catch(SQLException e){

e.printStackTrace();

}

rs =null;

}

if(stmt!=null){

try{

stmt.close();

}catch(SQLException e){

e.printStackTrace();

}

stmt =null;

}

if(conn!=null) {

try{

conn.close();

}catch(SQLException e){

e.printStackTrace();

}

conn =null;

}

}

}

用于验证的主函数的写法:

packagecn.toto.demo;

importjava.sql.Connection;

importjava.sql.SQLException;

importcn.toto.utils.JdbcUtils;

publicclassDemo {

publicstaticvoidmain(String[] args)throwsSQLException {

for(inti=0;i<30;i++){

Connection conn = JdbcUtils.getConnection();//如果只写这句,程序将一直等待执行。

System.out.println(conn);//不写下面一句时,打印输出,验证是否有20条,结果是20条

conn.close();//用一个放回一个,加上这一句之后将出现30条数据。

}

}

}

在文档中还有一个方法:

mons.dbcp

Class BasicDataSourceFactory它里面有一个这样的方法:

createDataSource(Propertiesproperties)

Creates andconfigures aBasicDataSourceinstance based on the given properties.

它是根据Properties,根据properties中的信息获得信息。

配置dbcp的配置文件的方法是:找到文档中的Configuration,里面有多个属性。

在src下面编写一个一个配置文件config.properties

driverClassName=com.mysql.jdbc.Driver

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

username=root

password=123456

initialSize=5

maxiActive=20

通过配置文件的方式获得的数据源的源码是:

packagecn.toto.utils;

importjava.io.IOException;

importjava.io.InputStream;

importjava.sql.Connection;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjava.util.Properties;

importjavax.sql.DataSource;

importmons.dbcp.BasicDataSource;

importmons.dbcp.BasicDataSourceFactory;

publicclassJdbcUtils {

privateJdbcUtils() {

}

// 定义BasicDataSource的父类接口的形式,获得ds的参数。

privatestaticDataSourceds;

static{

try{

InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream(

"config.properties");//通过类加载的方式获得获得配置文件的流

Properties prop =newProperties();

prop.load(in);//通过流将配置项加载进来。

//通过工厂类读取

ds= BasicDataSourceFactory.createDataSource(prop);

}catch(Exception e) {

thrownewExceptionInInitializerError();

}

}

// 获得连接池

publicstaticDataSource getDataSource() {

returnds;

}

// 获得与指定数据库的连接

publicstaticConnection getConnection()throwsSQLException {

// 从连接池返回一个连接

returnds.getConnection();

}

publicstaticvoidrelease(ResultSet rs, Statement stmt, Connection conn) {

if(rs !=null) {

try{

rs.close();

}catch(SQLException e) {

e.printStackTrace();

}

rs =null;

}

if(stmt !=null) {

try{

stmt.close();

}catch(SQLException e) {

e.printStackTrace();

}

stmt =null;

}

if(conn !=null) {

try{

conn.close();

}catch(SQLException e) {

e.printStackTrace();

}

conn =null;

}

}

}

03_dbcp数据源依赖jar包 DBCP中API介绍 不同过dbcp方式使用dbcp数据库连接池 通过配置文件使用dbcp数据库连接池

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。