package cn.jdbctest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 单例模式
* @author zhangjl
* @date 2013-12-12
*/
public final class JdbcUtils {
private final String URL = "jdbc:mysql://localhost:3306/user";
private final String USER = "root";
private final String PASSWORD = "root";
private Connection conn=null;
private JdbcUtils instance=null;
//private JdbcUtils instance=new JdbcUtils();在类创建时就加载。
/**
* 防止构建实例
*/
private JdbcUtils(){
}
static{
try {
Class.forName("com.jdbc.mysql.Driver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
/**
* 延时加载(懒加载),在第一次调运时在加载
* @return
*/
public JdbcUtils getInstance(){
if(instance==null){
synchronized (instance) {
if(instance==null){
instance= new JdbcUtils();
}
}
}
return instance;
}
public Connection getConn() {
try {
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public void free(ResultSet rs, Statement stat, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (stat != null) {
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
}
}