使用dbcp配置数据源
1.配置dbcp数据源需要两个jar包,commons-dbcp-x.x.x.jar和commons-pool.x.x.x.jar,版本的差别不是很大,当然也需要数据库驱动2.可以使用配置文件,也可以手动直接在程序中直接配置,(建议使用配置文件比较方便些)
在程序中直接手动配置:
package com.silence.database; import java.sql.Connection; import java.sql.SQLException; import org.apache.commons.dbcp.BasicDataSource; import org.junit.Test; public class Test1 { @Test public void testDBCP() throws SQLException{ //创建数据库连接池 final BasicDataSource dataSource = new BasicDataSource(); //指定数据库用户名 dataSource.setUsername("root"); //指定数据库密码 dataSource.setPassword("root"); //指定数据库的URL dataSource.setUrl("jdbc:mysql://localhost:3306"); //指定数据库的驱动名称 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //指定数据库连接池中初始化连接数的个数 dataSource.setInitialSize(5); // 指定最大的连接数: 同一时刻可以同时向数据库申请的连接数 dataSource.setMaxActive(5); //指定小连接数: 在数据库连接池中保存的最少的空闲连接的数量 dataSource.setMinIdle(2); //等待数据库连接池分配连接的最长时间. 单位为毫秒. 超出该时间将抛出异常. dataSource.setMaxWait(1000 * 5); //从数据源中获取数据库连接 Connection connection = dataSource.getConnection(); System.out.println(connection); System.out.println(connection.getClass()); } } 输出如下: jdbc:mysql://localhost:3306, UserName=root@localhost, MySQL-AB JDBC Driver class org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper2.使用配置文件创建连接池
dbcpconfig.properties文件的内容如下:(该文件是从网络中找到的一份比较完整的配置文件)
#连接设置 url=jdbc:mysql://localhost:3306/test driverClassName=com.mysql.jdbc.Driver username=root password=root #初始化连接的大小 initialSize=10 ##连接池的最大数据库连接数。设为0表示无限制 maxActive=100 #连接池的最大空闲连接 maxIdle=50 #连接池的最小空闲连接 minIdle=5 #超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 maxWait=80000 #JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;] #注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。 connectionProperties=useUnicode=true;characterEncoding=utf8 #指定由连接池所创建的连接的自动提交(auto-commit)状态。 defaultAutoCommit=true #driver default 指定由连接池所创建的连接的只读(read-only)状态。 #如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix) defaultReadOnly= #driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。 #可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE #oracle只支持READ_COMMITTED(默认),SERIALIZABLE 住程序如下: package com.silence.database; import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; public class Test { private static DataSource ds; static{ try { //从src目录下读取配置文件 InputStream in = Test.class.getClassLoader().getResourceAsStream("dbcpconfig.properties"); Properties props = new Properties(); //使用properties来读取配置 props.load(in); //获取数据源 ds = BasicDataSourceFactory.createDataSource(props); Connection conn = ds.getConnection(); System.out.println(conn); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection(){ try { return ds.getConnection(); } catch (SQLException e) { throw new RuntimeException(e); } } public static void main(String[] args) { Connection conn = getConnection(); System.out.println(conn); System.out.println(conn.getClass()); } } }
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。