23,407
社区成员
发帖
与我相关
我的任务
分享
package cloud305.day02;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
import org.apache.commons.dbcp.BasicDataSource;
public class TestConnectionPool {
public static void main(String[] args) {
execute();
}
public static void execute() {
String driver = null;
String url = null;
String user = null;
String password = null;
BasicDataSource ds = new BasicDataSource();
Properties props = new Properties();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
props.load(new FileInputStream("db_mysql.properties"));
if (props != null) {
driver = props.getProperty("driver");
url = props.getProperty("url");
user = props.getProperty("user");
password = props.getProperty("password");
}
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setPassword(password);
ds.setUsername(user);
conn = ds.getConnection();
stmt = conn.createStatement();
String sql = "select count(*) from emp";
rs = stmt.executeQuery(sql);
if (rs.next()) {
System.out.println(rs.getInt(1));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
ConnectionUtils.closeResultSet(rs);
ConnectionUtils.closeStatement(stmt);
ConnectionUtils.closeConnection(conn);
}
}
}
package tarena.dang.util;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public final class DbUtil {
private static DataSource ds;
private static ThreadLocal<Connection> connLocal = new ThreadLocal<Connection>();
static {
try {
Properties props = new Properties();
props.load(DbUtil.class.getClassLoader().getResourceAsStream(
"dbcp.properties"));
ds = BasicDataSourceFactory.createDataSource(props);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
Connection conn = connLocal.get();
try {
if(conn == null){
conn = ds.getConnection();
connLocal.set(conn);
}
return conn;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
public static void close(){
Connection conn = connLocal.get();
connLocal.set(null);
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
//测试
System.out.println(getConnection());
System.out.println(getConnection());
}
}
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dangdang
username=root
password=1234
initialSize=2
maxActive=10
maxIdle=2
minIdle=1
maxWait=30000
