81,094
社区成员
发帖
与我相关
我的任务
分享
<img src="mtbf.action"/>
<img src="mttr.action"/>
public com.foxboard.database.ResultSet executeQuery(String sql) throws SQLException {
List<HashMap<Object, Object>> list = new ArrayList<HashMap<Object, Object>>();
com.foxboard.database.ResultSet rst = new com.foxboard.database.ResultSet();
try {
conn = openConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
HashMap<Object, Object> map = new HashMap<Object, Object>();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
map.put(rsmd.getColumnName(i).toLowerCase(), rs.getObject(i));
map.put(rsmd.getColumnName(i).toUpperCase(), rs.getObject(i));
map.put(i, rs.getObject(i));
}
list.add(map);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
closeConnection();
}
return rst.load(list, rst);
}
public void closeConnection() throws SQLException {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
}
//每次执行查询操作都是这样写的,每个方法里都是这样写的。
String sql = "select * from c_maintain_item_t ";
DatabaseConnection dbconn = DatabaseConnection.getInstance();
ResultSet rs = dbconn.executeQuery(sql);//这里的rs实际上是一个Hashmap,不是java.sql.ResultSet
while (rs.next()) {
//...
}
private Connection openConnection() throws NamingException, SQLException {
Connection conn = null;
if (ds == null) {
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("jdbc/smt");
conn = ds.getConnection();
} catch (NoInitialContextException e) {
conn = getJDBCConnection();//用这个就没问题
}
} else {
conn = ds.getConnection();
}
return conn;
}