尚硅谷之JDBC
方式二:
优化代码:
直接使用BasicDataSource,耦合,而且在代码中需要很多setXxx()设置属性值
使用dbcp.properties属性配置文件和BasicDataSourceFactory更灵活
步骤:
- 加载 dbcp 的 properties 配置文件: 配置文件中的键需要来自 BasicDataSource的属性.
- 调用 BasicDataSourceFactory 的 createDataSource 方法创建 DataSource实例
- 从 DataSource 实例中获取数据库连接.
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username=root password=root initialSize=3 maxActive=5 minIdle=2 maxWait=5000 |
package com.jdbc.datasource; import java.sql.Connection; import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; public class TestDBCP3 { public static void main(String[] args) throws Exception { //1.获取配置文件信息 //注意:配置文件中的key来自BasicDataSourceFactory的属性(set方法后面单词首字母改小写即可) Properties pro = new Properties(); pro.load(ClassLoader.getSystemResourceAsStream("dbcp.properties")); //2.创建DBCP数据源(即连接池) DataSource ds = BasicDataSourceFactory.createDataSource(pro); //3.从数据源中获取数据库连接 Connection conn = ds.getConnection(); System.out.println("获取1个"+conn); } } |
JDBCUtils修改DBCP版:
package com.atguigu.utils; import java.sql.Connection; import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; public class DBCPUtils { private static Properties pro = new Properties(); private static DataSource ds ; static{ try { //加载,读取jdbc.properties配置的信息 pro.load(ClassLoader.getSystemClassLoader().getResourceAsStream("dbcp.properties")); //创建池子 ds = BasicDataSourceFactory.createDataSource(pro); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection()throws Exception{ return ds.getConnection(); } } |