一.了解什么是数据库连接池
避免频繁地创建数据库连接,数据库连接池技术应运而生。数据库连接池负责分配、管理和释放数据库连接,允许应用程序重复使用现有的数据库连接。
二.DBCP数据源
commons-dbcp.jar包:实现包,包含所有操作数据库连接信息和数据库连接池初始化信息的方法,并实现了DataSource接口的getConnection()方法
commons-pool.jar包:依赖包,为commons-dbcp.jar包中的方法提供了支持
三.通过BasicDataSource类直接创建数据源对象
package test;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
public class test1 {
public static DataSource ds=null;
static {
BasicDataSource bds =new BasicDataSource();
bds.setDriverClassName(“com.mysql.jdbc.Driver”);
bds.setUrl(“jdbc:mysql://localhost:3306/jdbc”);
bds.setUsername(“root”);
bds.setPassword(“itcast”);
bds.setInitialSize(5);
bds.setMaxActive(5);
ds=bds;
}
public static void main(String[] args) throws SQLException {
Connection conn=ds.getConnection();
DatabaseMetaData metaData =conn.getMetaData();
System.out.println(metaData.getURL());
}
}
(手动获取数据库的连接信息和数据源的初始化信息,设置了连接池需要的配置信息,最后打印输出路径)
四.通过读取配置文件创建数据源对象
在src文件下面创建一个dbcpconfig.properties文件用于设置数据库的连接信息和数据源的初始化信息,代码如下:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
uername=java
password=123456
initialSize=5
maxActive=10
maxIdle=10
然后在src下面的包创建一个test02类,该类从配置文件中获取数据库的连接信息和数据源的初始化信息的方式
package test;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class test2 {
public static DataSource ds=null;
static {
Properties prop=new Properties();
try {
InputStream in=new test2().getClass().getClassLoader().getResourceAsStream(“dbcpconfig.properties”);
prop.load(in);
ds=BasicDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public static void main(String[] args) throws SQLException {
Connection conn=ds.getConnection();
DatabaseMetaData metaData =conn.getMetaData();
System.out.println(metaData.getURL());
}
}
五.总结
一个是直接创建数据源对象,另一个是通过读取配置文件来创建数据源对象,然后获取数据库连接对象。