利用Druid連接池獲得數據庫連接(得到一個連接對象):
package com.hk.utils;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
public class DbUtils {
private static DruidDataSource druidDataSource;
//初始化德魯伊連接池
static {
//getClassLoader();得到類加載器對象(單例)
InputStream is = DbUtils.class.getClassLoader().getResourceAsStream("druid.properties");//得到信息流
Properties properties = new Properties();//配置文件對象
try {
properties.load(is);//讀取配置文件
is.close();
druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);//加載配置文件,獲取德魯伊連接池
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//獲取數據庫連接對象
public static Connection getConnection() {
Connection conn = null;
try{
conn = druidDataSource.getConnection();
}catch (Exception ex) {
ex.printStackTrace();
}
return conn;
}
//關閉結果集和數據庫處理對象(或預處理對象)和數據庫連接對象(數據連接池本質上不會被關閉)
public static void close(ResultSet rs, Statement statement, Connection conn) {
try{
if(null != rs) {
rs.close();
}
if(null != statement) {
statement.close();
}
if(null != conn) {
conn.close();
}
}catch (Exception ex) {
ex.printStackTrace();
}
}
}
配置文件信息:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/javaweb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username=root
password=123456
#初始化的時候,連接池中放多少個連接
initialSize=10
# 最大存貨的連接數量
maxActive=50
#最小空閑數量
minIdle=5
#配置獲取連接等待超時的時間
maxWait=10000
#驗證連接池中的連接是否有效的sql語句
validationQuery='select 1'
#在獲取連接的時候,驗證拿到連接是否為有效連接
testOnBorrow=false
#在歸還連接的時候,驗證是否為有效連接
test-on-return=false
#空閑的時候驗證是否有效
test-while-idle=true