- JdbcUtilsSingle 工具类
package com.chinasofti.jdbc;
import java.sql.*;
/**
* Created by yvettee on 2017/9/17.
*/
public class JdbcUtilsSingle {
private String url = "jdbc:oracle:thin:@localhost:1521:XE";
private String user = "scott";
private String password = "tiger";
private static JdbcUtilsSingle instance = null;
private JdbcUtilsSingle() {
}
//懒汉式
public static JdbcUtilsSingle getInstance() {
if (instance == null) {
//可能会有并发问题,要进行加锁
synchronized (JdbcUtilsSingle.class) {
//双重检查,第一次访问加锁,以后instance都不会为null,就直接返回instance
if (instance == null) {
instance = new JdbcUtilsSingle();
}
}
}
return instance;
}
//注册驱动
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
public void release(Connection conn, Statement st, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
rs = null;//如果rs没有被关闭,就置为空,变成一个垃圾对象,被垃圾回收器回收
}
if (st != null) {
try {
st.close();
} catch (Exception e) {
e.printStackTrace();
}
st = null;
}
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
- 实现
package com.chinasofti.jdbc;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* Created by yvettee on 2017/9/17.
*/
public class Base {
public static void main(String[] args) throws Exception {
template();
}
static void template() throws Exception {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
conn = JdbcUtilsSingle.getInstance().getConnection();
st = conn.createStatement();
String sql = "select * from emp";
rs = st.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt(1) + rs.getString(2));
}
} finally {
JdbcUtilsSingle.getInstance().release(conn, st, rs);
}
}
}