对于JDBC的封装(连接Oracle)
不完全封装代码(继续学习):
/*
* 数据库连接类,包括操作
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DataConnection {
private static final String DBDRIVER="oracle.jdbc.driver.OracleDriver";
private static final String DBURL="jdbc:oracle:thin:@class11-11:1521:OMS";
private static final String DBUSER="SCOTT";
private static final String DBPASS="123";
private Connection conn=null;
// 声明预处理会话,并初始化为null
private PreparedStatement pstm=null;
private static DataConnection dc;
/**
* 构造函数
*/
private DataConnection(){
try {
Class.forName(DBDRIVER);
init();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private void init(){
// 数据库连接
try {
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
} catch (SQLException e) {
e.printStackTrace();
}
}
public static synchronized DataConnection getDataConnection(){
if (dc==null) {
dc=new DataConnection();
}
return dc;
}
/**
* 连接数据库
* @return connection 返回创建好的连接
*/
public synchronized Connection getConnection(){
try {
if (conn==null || conn.isClosed()) {
init();
}
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 对数据进行查询操作
* @param sql SQL语句
* @return resultset结果集
*/
public ResultSet select(String sql){
ResultSet rs=null;
conn=getConnection();
try {
pstm=conn.prepareStatement(sql);
rs=pstm.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/**
* 对数据进行更新操作,包括:更新、增加、删除
* @param sql SQL语句
* @return int 该操作影响的行数
*/
public int update(String sql){
int count=0;
conn=getConnection();
try {
pstm=conn.prepareStatement(sql);
count=pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return count;
}
/**
* 关闭连接与会话
*/
public void down(){
try {
conn.close();
pstm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}