java操作数据库的工具类 (五)

2014-11-24 11:24:38 · 作者: · 浏览: 18
t.add(o);
}
}
return executeUpdate(sqlQry, list);
}

private void setParams(PreparedStatement pstmt, List params)
throws SQLException {
if (params != null) {
Object o;
for (int i = 1; i <= params.size(); i++) {
o = params.get(i - 1);
if (o instanceof String) {
pstmt.setString(i, (String) o);
} else if (o instanceof Date) {
Date d = (Date) o;
String t = DateUtils.format(d, "HHmmss");
if (t.matches("[1-9]")) {
pstmt.setTimestamp(i,
new java.sql.Timestamp(d.getTime()));
} else {
pstmt.setDate(i, new java.sql.Date(d.getTime()));
}

} else if (o instanceof BigDecimal) {
pstmt.setBigDecimal(i, (BigDecimal) o);
} else if (o instanceof Long) {
pstmt.setLong(i, (Long) o);
} else if (o instanceof Integer) {
pstmt.setInt(i, (Integer) o);
}
}
}
}

/**
* 将rs中的资料copy到Object数组中
*
* @param rs
* 查询结果集
* @return Object数组
* @throws SQLException
* 无法取得结果集列数时, 抛出异常
*/
protected Object[] copyRsData(ResultSet rs) throws SQLException {
return copyRsData(rs, -1);
}

/**
* 将rs中的资料copy到Object数组中
*
* @param rs
* 查询结果集
* @param cNum
* Object长度(如果cNum大于实际列数, 则以实际列数为准)
* @return Object 数组
* @throws SQLException
* 无法取得结果集列数时, 抛出异常
*/
protected Object[] copyRsData(ResultSet rs, int cNum) throws SQLException {
Object[] objs = new Object[cNum];
if (cNum > rs.getMetaData().getColumnCount()) {
cNum = rs.getMetaData().getColumnCount();
}
for (int i = 0; i < cNum; i++) {
try {
objs[i] = rs.getObject(i + 1);
} catch (SQLException e) {
e.printStackTrace();
}
}
return objs;
}

private void close() {
helper.close();
}

private void setParams() throws SQLException {
// 添加分
if (start >= 0 && size > 0) {
setBigDecimal(":start", new BigDecimal(start));
setBigDecimal(":size", new BigDecimal(size));
}
// 定
if (params == null) {
return;
}
Object value;
for (String s : params.keySet()) {
value = params.get(s);
if (!s.startsWith(":")) {
s = ":" + s;
}
setValue(s, value);
}
}

private void setBigDecimal(String field, BigDecimal x) throws SQLException {
setValue(field, x);
}

private void setValue(String field, Object value) throws SQLException {
String regex = field + "[+,=,\\-,*,<,>,!,\\s,(,),]";
String repStr = "";
if (value == null) {
repStr = "null";
} else if (value instanceof String) {
repStr = "'" + StringE