1.通过单例实现提供jdbc的连接和流关闭
package cn.itsource.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JDBCUtil {
// 单例
private JDBCUtil(){}
private static JDBCUtil instance;
private static Properties prop = new Properties();
static{
instance = new JDBCUtil();
try {
prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
Class.forName(prop.getProperty("DriverClass"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static JDBCUtil getInstacnce(){ // 提供公共可访问的方法
return instance;
}
// 获取连接
public Connection getConn(){
Connection conn = null;
try {
conn = DriverManager.getConnection(prop.getProperty("url"), prop.getProperty("username"), prop.getProperty("password"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
// 关闭连接
public void close(Connection conn, PreparedStatement st, ResultSet rs){
try {
if(rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(st != null)
st.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
2.通过枚举实现jdbc连接
package cn.itsource.util;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import java.sql.ResultSet;
import java.sql.Statement;
public enum JDBCUtil {
instance;
static Properties p = new Properties();
static{
try {
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties");
p.load(inputStream);
Class.forName(p.getProperty("DriverClass"));
} catch (Exception e) {
// TODO: handle exception
}
}
public Connection getConn(){
Connection connection = null;
try {
connection = DriverManager.getConnection(p.getProperty("url"), p.getProperty("username"), p.getProperty("password"));
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
public void Close(Connection conn, Statement statement, ResultSet rs){
try {
if (rs != null) rs.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally {
try {
if (statement != null) statement.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(conn != null) conn.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}