单例模式拿到oracle数据库连接
package com.chy.orclconn;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
public class OrclConn {
private final String driverClass = "oracle.jdbc.driver.OracleDriver";//驱动类
private final String url = "jdbc:oracle:thin:@localhost:1521:chen";//数据库连接url
private final String username = "chen";//用户名
private final String password = "chen";//密码
private Connection conn;
private Statement st;
private PreparedStatement ps;
/**
* single pattern;
*/
private static OrclConn orclConn;
private OrclConn(){}
/**
* @return OrclConn instance;
*/
public static OrclConn getInstance(){
if(orclConn == null){
orclConn = new OrclConn();
}
return orclConn;
}
/**
*
* @return an oracle connection
*/
private Connection getConnection(){
try {
//加载驱动、得到数据库连接
Class.forName(driverClass);
conn = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
System.out.println("Class DriverClass not found !");
e.printStackTrace();
} catch (SQLException e){
System.out.println("connection failed !");
e.printStackTrace();
}
return conn;
}
/**
*
* @return an sql statement
*/
public Statement getStatement(){
try {
if(st == null){
st = getConnection().createStatement();
}
} catch (SQLException e) {
e.printStackTrace();
}
return st;
}
/**
* @param the sql that you want to operate oracle!
* @return an sql PreparedStatement;
*/
public PreparedStatement getPreparedStatement(String sql){
try {
if(ps == null){
ps = getConnection().prepareStatement(sql);
}
} catch (SQLException e) {
e.printStackTrace();
}
return ps;
}
/**
* close connection
*/
public void connClose(){
try {
if(conn != null){
if(!conn.isClosed()){
conn.close();
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
测试:
package com.chy.orclconn;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public static void main(String[] args) throws SQLException {
String sql = "select table_name as tableName from user_tables";
Statement st = OrclConn.getInstance().getStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()){
System.out.println(rs.getString("tableName"));
}
}
}