一、数据库连接池
1.什么是数据库连接池
在JDBC编程中,每次创建和断开Connection对象都会消耗-定的时间和 10资源。这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码,并且要为这个连接分配资源,Java 程序则要把代表连接的java.sql.Connection对象等加载到内存中,所以建立数据库连接的开销很大,尤其是在大量的并发访问时。假如某网站一天的访问量是10万,那么,该网站的服务器就需要创建、断开连接10万次,频繁地创建、断开数据库连接势必会影响数据库的访问效率,甚至导致数据库崩溃。
为了避免频繁地创建数据库连接,数据库连接池技术应运而生。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是重新建立。
2.创建数据源对象方法
1.通过BasicDataSource类直接创建数据源对象
package cn.itcast.chapter10 ;
Jimport...
public class ExampLe01 {
pubLic static DataSource ds = null;
static {
//获取DBCP数据源实现类对象
BasicDataSource bds = new BasicDataSource();|
//设置连接数据库需要的配置信息
bds. setDriverCLassName (" com . mysqL. jdbc . Driver");
bds . setUrL(" jdbc:mysqL://LocaLhost:3306/jdbc" );
bds. setUsername("root");
bds. setPassword("123456");
//设置连接池的参数
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()
+", UserName="+metaData. getUserName()
+"," +metaData. getDriverName());
}
}
2.通过读取配置文件创建数据源对象
package cn.itcast.chapter10;
import ...
public class ExampLe02 {
public static DataSource ds = null;
static
//新建一个配置文件对象
Properties prop = new Properties();
tryt{
//通过类加载器找到文件路径,读配置文件
InputStream in = new ExampLe02() . getClass(). getClassLoader()
.getResourceAsStream( name: ”dbcpconfig