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

2014-11-24 11:24:38 · 作者: · 浏览: 16
sWarnings("unchecked")
public List executeQuery(Class c, String sqlQuery,
Map params,Page page) {
List list = new ArrayList();
ResultSet rs = null;
try {
this.sqlQry = sqlQuery;
this.params = params;

if(page!=null){
this.sqlQry+=" limit :size offset :start";
this.start=page.getstartR(page.getCurpage(), page.getPagesize());
this.size=page.getPagesize();
}
if (start >= 0 && size > 0) {
setBigDecimal(":start", new BigDecimal(start));
setBigDecimal(":size", new BigDecimal(size));
}
setParams();
rs = helper.createStatement().executeQuery(sqlQry);
if (c.toString().equals("class java.lang.Object")) {
int cNum = rs.getMetaData().getColumnCount();
while (rs.next()) {
list.add((T) copyRsData(rs, cNum));
}
} else {
try {
// ResultSetDynaClass rsdc = new ResultSetDynaClass(rs);
// Iterator rows = rsdc.iterator();
while (rs.next()) {
T t = (T) c.newInstance();
copyProperties(t, rs, log);
// DynaBean row = (DynaBean) rows.next();
// BeanUtils.copyProperties(t, row);
list.add(t);
}
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
} catch (SQLException e) {
log.error(e.toString(), e);
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
log.error(e.toString(), e);
}
}
close();
log.debug(sqlQry);
}
return list;
}

/**
*
* 根据提供的SQL查询数据
*
* @param c
* 数据类型 可以是Model.class 后 Object[].class
* @param sqlQry
* 查询SQL(参数用 代替)
* @param params
* 参数List
* @return 指定类型的List
*/
@SuppressWarnings("unchecked")
public List executeQuery(Class c, String sqlQry,
List params) {
List list = new ArrayList();
ResultSet rs = null;
try {
PreparedStatement pstmt = helper.createStatement(sqlQry);
setParams(pstmt, params);
rs = pstmt.executeQuery();
if (c.toString().equals("class java.lang.Object")) {
int cNum = rs.getMetaData().getColumnCount();
while (rs.next()) {
list.add((T) copyRsData(rs, cNum));
}
} else {
try {
// ResultSetDynaClass rsdc = new ResultSetDynaClass(rs);
// Iterator rows = rsdc.iterator();
wh