package com.fastech.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import org.apache.log4j.Logger;
public class ConnectJDBC {
private static Logger log = Logger.getLogger(ConnectJDBC.class);
private Connection conn = null;
public static ConnectJDBC getInstance() {
return SingletonClassInstance.instance;
}
private static class SingletonClassInstance {
private static final ConnectJDBC instance = new ConnectJDBC();
}
/**
* 获取数据库连接
* @return
* @throws SQLException
*/
public Connection getConnection() throws SQLException {
if (null ==conn || conn.isClosed()) {
Properties prop = new Properties();
InputStream ips = Thread.currentThread().getContextClassLoader().getResourceAsStream("jdbc.properties");
try {
prop.load(ips);
} catch (IOException e) {
}
String driver = prop.getProperty("jdbc.driverClassName");
String user = prop.getProperty("jdbc.username");
String pass = prop.getProperty("jdbc.password");
String url = prop.getProperty("jdbc.url");
log.info(driver+","+user+","+pass+","+url);
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url, user, pass);
if (null != conn) {
return conn;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
return conn;
}
return null;
}
public void close() {
if (conn != null) {
try {
conn.close();
log.info("Close SQL Success.");
} catch (SQLException e) {
e.printStackTrace();
log.error("Close SQL failed!");
}
conn = null;
}
}
}