import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
/**
* @author tarena
*
*/
public class DBUtil {
private static String driver;
private static String url;
private static String user;
private static String password;
private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();
static{
try {
Properties props = new Properties();
props.load(DBUtil.class.getClassLoader().getResourceAsStream("db.properties"));
driver = props.getProperty("driver");
url = props.getProperty("url");
user = props.getProperty("user");
password = props.getProperty("password");
Class.forName(driver);
} catch (Exception e) { throw new RuntimeException("数据库驱动加载错误",e);}
}
/**
*获取连接
*/
public static Connection openConnection() throws SQLException {
Connection conn = tl.get();
if(conn == null){
try{
conn = DriverManager.getConnection(url, user, password);
tl.set(conn);
}catch(SQLException e){
e.printStackTrace();
throw new RuntimeException("获取数据库连接失败..");
}
}
return conn;
}
/**
*关闭连接
*/
public static void closeConnection() {
Connection conn = tl.get();
if (conn != null) {
try {
conn.close();
tl.set(null);
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException("关闭连接失败..");
}
}
}
public static void main(String[] args) throws Exception {
Connection con = openConnection();//简单测试下
System.out.println(con);
}
}