package com.bobo.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;
/**
* JDBC辅助类 用于构建数据库连接(采用单例模式)
*/
public final class JDBCUtilSingle {
static String driver_class = "oracle.jdbc.driver.OracleDriver";
static String url = "jdbc:oracle:thin:@192.168.1.111:1521:orcl";
static String name = "test";
static String password = "123456";
static Connection conn = null;
private static JDBCUtilSingle jdbcUtilSingle = null;
public static JDBCUtilSingle getInitJDBCUtil() {
if (jdbcUtilSingle == null) {
// 给类加锁 防止线程并发
synchronized (JDBCUtilSingle.class) {
if (jdbcUtilSingle == null) {
jdbcUtilSingle = new JDBCUtilSingle();
}
}
}
return jdbcUtilSingle;
}
private JDBCUtilSingle() {
}
// 通过静态代码块注册数据库驱动,保证注册只执行一次
static {
try {
Class.forName(driver_class);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 获得连接
public Connection getConnection() {
try {
conn = DriverManager.getConnection(url,name,password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
// 关闭连接
public void closeConnection(ResultSet rs, Statement st,PreparedStatement ptst, Connection con) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (st != null) {
st.close();
}
if(ptst !=null){
ptst.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}