书城项目中Druid数据库连接池的配置
文章目录
目录
2.获取类加载器并调用getResourceAsStream()方法加载jdbc.properties文件,得到一个输入流
3.调用Properties类下的load()方法加载获取的输入流,加载配置文件
4.使用DruidDataSourceFactory下的createDataSource()方法创建数据库连接池
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
步骤:
1.创建jdbc.properties
#使用druid需要jdbc.properties配置文件
username=root
password=root
url=jdbc:mysql://localhost:3306/book?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
driverClassName=com.mysql.cj.jdbc.Driver
initialSize=5
maxActive=10
2.获取类加载器并调用getResourceAsStream()方法加载jdbc.properties文件,得到一个输入流
InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
3.调用Properties类下的load()方法加载获取的输入流,加载配置文件
Properties pro = new Properties();
pro.load(inputStream);
4.使用DruidDataSourceFactory下的createDataSource()方法创建数据库连接池
DruidDataSource dataSource = (DruidDataSource)DruidDataSourceFactory.createDataSource(pro);
5.使用得到的dataSource获取连接
Connection conn = dataSource.getConnection();
6.关闭数据库连接池
/**
* 关闭连接放回数据库连接池
* @param conn
*/
public static void close(Connection conn){
try {
if (conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
总结
完整代码如下:
注意:此完整代码解决以上每调用一次getConnection()方法都会new一个新的连接池,此连接池一个即可
package com.atguigu.utils;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
public class JdbcUtils {
private static DruidDataSource dataSource;
static{
try {
Properties pro = new Properties();
//读取jdbc.properties属性配置文件
InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
//从流中加载数据
pro.load(inputStream);
//创建数据库连接池
dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接池中的连接
* @return 如果返回null说明获取连接失败<br/>有值就是获取连接成功
*/
public static Connection getConnection(){
Connection conn = null;
try {
conn = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭连接放回数据库连接池
* @param conn
*/
public static void close(Connection conn){
try {
if (conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}