封装后的jdbc操作数据
public static ArrayList getDatas(Connection conn, SQLObject sqlObj) throws SQLException {
ArrayList rows = new ArrayList();
PreparedStatement pst=null;
ResultSet rs=null;
try {
if (sqlObj == null)
return rows;
pst = conn.prepareStatement(sqlObj.getSql());
Vector params = sqlObj.getParams();
for (int i = 0; i < params.size(); i++) {
if (params.get(i) == null)
throw new SystemException("查询sql语句中第" + (i + 1) + "参数为null!");
pst.setObject(i + 1, params.get(i));//给sql语句中参数赋值
}
rs = pst.executeQuery();
ResultSetMetaData rsm = rs.getMetaData();
while (rs.next()) {
rows.add(getRow(rs, rsm));//getRow方法在下面
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(rs!=null){
rs.close();
}
if(pst!=null){
pst.close();
}
}
return rows;
}
=====================
private static HashMap getRow(ResultSet rs, ResultSetMetaData rsm) throws SQLException {
HashMap map = new HashMap();
int count = rsm.getColumnCount();
for (int i = 1; i <= count; i++) {
Object value;
int colType = rsm.getColumnType(i);
switch (colType) {
case Types.TIMESTAMP:
case Types.DATE:
value = rs.getDate(i);
if (value != null)
value = Tools.formatDate((java.util.Date) value);
break;
case Types.FLOAT:
case Types.NUMERIC:
value = rs.getString(i);
if (value != null) {
int index = value.toString().indexOf(".");
if (index == 0) {
value = "0".concat(value.toString());
}
}
break;
default:
value = rs.getString(i);
}
map.put(rsm.getColumnName(i).toLowerCase(), value == null ? "" : value.toString());
}
return map;
}