03_dbcp数据源依赖jar包,DBCP中API介绍,不同过dbcp方式使用dbc
??
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的程序的写法: package cn.toto.utils;
import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
public class JdbcUtils { private JdbcUtils(){} //定义BasicDataSource的父类接口的形式,获得ds的参数。 private static DataSource ds;
static { 要想使用写好的数据源的功能,得先初始化一个dbcp连接池 BasicDataSource bds = new BasicDataSource();
设置一系列参数 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接口。 } 获得连接池 static DataSource getDataSource(){ return ds; }
获得与指定数据库的连接 static Connection getConnection() throws SQLException{ 从连接池返回一个连接 ds.getConnection(); }
static void release(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 = if(conn!= null) { try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } conn = null; } } }
用于验证的主函数的写法: package cn.toto.demo;
import java.sql.SQLException;
import cn.toto.utils.JdbcUtils;
class Demo {
void main(String[] args) throws SQLException {
for(int i=0;i<30;i++){ Connection conn = JdbcUtils.getConnection();如果只写这句,程序将一直等待执行。 System.out.println(conn);不写下面一句时,打印输出,验证是否有20条,结果是条
conn.close();用一个放回一个,加上这一句之后将出现30条数据。 } }
}
在文档中还有一个方法: org.apache.commons.dbcp
它是根据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
通过配置文件的方式获得的数据源的源码是: import java.io.IOException; import java.io.InputStream; import java.sql.Statement; import java.util.Properties;
import org.apache.commons.dbcp.BasicDataSource; import org.apache.commons.dbcp.BasicDataSourceFactory;
private JdbcUtils() { }
// ds;
static { try { InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream( "config.properties");通过类加载的方式获得获得配置文件的流 Properties prop = new Properties(); prop.load(in);通过流将配置项加载进来。 通过工厂类读取 ds = BasicDataSourceFactory.createDataSource(prop); } catch (Exception e) { throw new ExceptionInInitializerError(); } }
static DataSource getDataSource() { ds; }
throws SQLException { 从连接池返回一个连接 ds.getConnection(); }
if (rs != try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs = if (stmt != try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } stmt = if (conn != try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } conn = null; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |