📄 dao.java
字号:
package edu.buptsse.sxjd.dao;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Hashtable;
import java.util.Vector;
public class DAO {
protected static void close(ResultSet rs) {
try {
if (rs != null) {
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
}
protected static void close(Statement st) {
try {
if (st != null) {
st.close();
st = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
if (st != null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
st = null;
}
}
protected static void close(PreparedStatement pstmt) {
try {
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
pstmt = null;
}
}
protected static void close(Connection conn) {
DBManager.close(conn);
}
protected static void rollback(Connection conn) {
try {
if (conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
if (conn != null) {
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
protected static void cleanup(Connection conn, Statement st,
PreparedStatement pst, ResultSet rs) {
if (rs != null) {
close(rs);
}
if (st != null) {
close(st);
}
if (pst != null) {
close(pst);
}
if (conn != null) {
close(conn);
}
}
/**
* 执行查询
* @param sql
* @param values
* @param conn
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static Collection executeQuery(String sql, Connection conn)
throws Exception {
Statement st = null;
ResultSet rs = null;
Vector result;
ResultSetMetaData rsMetaData = null;
try {
st = conn.createStatement();
rs = st.executeQuery(sql);
result = new Vector();
rsMetaData = rs.getMetaData();
while (rs.next()) {
Hashtable record = new Hashtable();
for (int iCursor = 1; iCursor <= rsMetaData.getColumnCount(); iCursor++) {
//字段名均为小写
if (rs.getObject(iCursor) != null) {
record.put(rsMetaData.getColumnName(iCursor)
.toLowerCase(), rs.getObject(iCursor));
}
}
result.add(record);
}
} catch (Exception e) {
throw e;
} finally {
cleanup(null, st, null, rs);
}
return result;
}
/**
* 执行查询
* prepareStatement执行insert、update、delete操作
* values中对象的顺序要和“?”的顺序一致
* @param sql
* @param values
* @param conn
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static Collection executeQuery(String sql, Object[] values,
Connection conn) throws Exception {
PreparedStatement pst = null;
ResultSet rs = null;
Vector result = null;
ResultSetMetaData rsMetaData = null;
try {
if (values == null || values.length < 1) {
return executeQuery(sql, conn);
}
pst = conn.prepareStatement(sql);
for (int i = 0; i < values.length; i++) {
pst.setObject(i + 1, values[i]);
}
rs = pst.executeQuery();
result = new Vector();
rsMetaData = rs.getMetaData();
while (rs.next()) {
Hashtable record = new Hashtable();
//字段名均为小写
for (int iCursor = 1; iCursor <= rsMetaData.getColumnCount(); iCursor++) {
if (rs.getObject(iCursor) != null) {
record.put(rsMetaData.getColumnName(iCursor)
.toLowerCase(), rs.getObject(iCursor));
}
}
result.add(record);
}
} catch (Exception e) {
throw e;
} finally {
cleanup(null, null, pst, rs);
}
return result;
}
/**
* Statement执行insert、update、delete操作
* @param sql
* @param conn
* @return
* @throws Exception
*/
public static int executeUpdate(String sql, Connection conn)
throws Exception {
Statement st = null;
int rows = 0;
try {
st = conn.createStatement();
rows = st.executeUpdate(sql);
} catch (Exception e) {
throw e;
} finally {
cleanup(null, st, null, null);
}
return rows;
}
/**
* prepareStatement执行insert、update、delete操作
* values中对象的顺序要和?的顺序一致
* @param sql
* @param conn
* @return
* @throws Exception
*/
public static int executeUpdate(String sql, Object[] values, Connection conn)
throws Exception {
PreparedStatement pst = null;
int rows = 0;
try {
pst = conn.prepareStatement(sql);
for (int i = 0; i < values.length; i++) {
pst.setObject(i + 1, values[i]);
}
rows = pst.executeUpdate();
} catch (Exception e) {
throw e;
} finally {
cleanup(null, null, pst, null);
}
return rows;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -