JDBC----学习(14)--dbcp数据库连接池

 1. 数据源和数据库连接不同,数据源无需创建多个,它是产生数据库连接的工厂,因此整个应用只需要一个数据源即可。

2. 当数据库访问结束后,程序还是像以前一样关闭数据库连接:conn.close();

     但上面的代码并没有关闭数据库的物理连接, 它仅仅把数据库连接释放,归还给了数据库连接池。

public class TestPool {
     /**
      * 手动连接DBCP数据源
      * 1.加入jar(commons-dbcp2-2.6.0.jar)包,依赖于commons-pool2-2.6.1.jar包
      * 2.创建数据库连接池
      * 3.为数据源实例指定必须的属性
      * 4.从数据源获取数据库连接
      * @throws SQLException
      */
	@Test
	public void testDBCP() throws SQLException{
	//1.创建数据库连接池
	BasicDataSource dataSource = new BasicDataSource();

	//2.为数据源实例指定必须的属性
     dataSource.setUsername("okaya10");
     dataSource.setPassword("okaya10");
     dataSource.setUrl("jdbc:oracle:thin:@10.0.7.208:1521:ORCL");
     dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");

     //3.指定数据源的一些可选的属性
     //4.从数据源获取数据库连接
     Connection connection = dataSource.getConnection();
     System.out.println(connection.getClass());
	}

     /**
      * 通过读取配置文件获取连接
      * 1.加载properties文件:配置文件的中的键需要来自于BasicDataSource属性值。
      * 2.调用BasicDataSourceFactory的createDataSource()方法创建DataSource
      * 3.从DataSource实例中获取数据库连接。
      * @throws Exception
      */
	@Test
	public void testDBPCWithSourceFactory() throws Exception {
		Properties properties = new Properties();
		InputStream inStream = TestPool.class.getClassLoader().getResourceAsStream("dbcp.properties");
		properties.load(inStream);
		DataSource dataSource = BasicDataSourceFactory.createDataSource(properties);
		System.out.println(dataSource.getConnection());
	}

}

猜你喜欢

转载自blog.csdn.net/lsh15846393847/article/details/89349105
今日推荐