连接池之DruidUtil
package dbcp;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class DruidUtil {
private static DataSource ds = null;
static {
try {
Properties p = new Properties();
p.load(Thread.currentThread().getContextClassLoader()
.getResourceAsStream("druid.properties"));
// 创建DataSource对象
ds = DruidDataSourceFactory.createDataSource(p);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConn() {
try {
return ds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void close(Connection conn, Statement st, ResultSet rs) {
try {
if(rs != null) {
rs.close();
}
} catch (Exception e) {
} finally {
try {
if(st != null) {
st.close();
}
} catch (Exception e2) {
} finally {
try {
if(conn != null) {
conn.close();
}
} catch (Exception e3) {
}
}
}
}
}
测试:
package dbcp;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.junit.Test;
// 使用DBCP连接池
public class DBCPTest {
public DataSource getDataSource() {
// 创建连接对象
BasicDataSource ds = new BasicDataSource();
// 设置连接数据库的四要素
ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/jdbcdemo?useUnicode=true&characterEncoding=utf-8&useSSL=false&&serverTimezone=GMT");
ds.setUsername("root");
ds.setPassword("admin");
ds.setMaxActive(5); // 最大连接数
return ds;
}
@Test
public void test1() throws Exception {
//DataSource ds = this.getDataSource();
//Connection conn = ds.getConnection();
Connection conn = DruidUtil.getConn();
PreparedStatement ps = conn.prepareStatement("SELECT * FROM t_student");
ResultSet rs = ps.executeQuery();
while(rs.next()) {
System.out.println(rs.getLong("id"));
}
}
}
配置文件
driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/jdbcdemo?useUnicode=true&characterEncoding=utf-8&useSSL=false&&serverTimezone=GMT username=root password=admin maxActive=10 validationQuery:SELECT 1 testWhileIdle:true testOnBorrow:false testOnReturn:false

浙公网安备 33010602011771号