public List<ArrayLeave> findList(String datebaseName, String sql) {
List<ArrayLeave> templist = new ArrayList<ArrayLeave>();
// StringBuffer buffer = new StringBuffer();
// buffer.append("select region.rIdcard, CONVERT(varchar(7), dimission.dDismissionTime, 23) as sd,regions.rid from registerregion as region left join persons as person on (region.ridcard = person.pidcard)left join dimission as dimission on(region.ridcard = dimission.didcard)left join recruitment.dbo.region as regions on(region.rcityid = regions.rid)where 1=1 and region.ridcard like '%[_]%' and regions.rid in(18) ");
ResultSet rs = csd.getRSBySql(sql, datebaseName);
try {
while (rs.next()) {
ArrayLeave a = new ArrayLeave();
String sumLeave = rs.getString("sumLeave");
String sd = rs.getString("sd");
String rid = rs.getString("rid");
a.setSumLeave(sumLeave);
a.setSd(sd);
a.setRid(rid);
templist.add(a);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return templist;
}
上面那在DAO层里面对于rs结果集的封装,getRSBySql方法代码如下:
/**
* 根据sql语句查询结果集
*/
public ResultSet getRSBySql(String sql, String databaseName) {
if (sql != null && !sql.trim().equals("")) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
con = ConnectionManager.getInstance().getConnection(
databaseName);
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
} catch (Exception e) {
e.printStackTrace();
log.error(e);
}
return rs;
} else {
return null;
}
}
我写的sql语句如下:
[img]http://dl.iteye.com/upload/attachment/567920/b6a8e5ab-add8-3c33-ae8e-e49280b0721a.jpg[/img]
这条sql我少了个条件 就是时间,它得到的结果集 我能够 rs.next(),但下面这句 我多加了个条件 圈的到那条件就不能进入
rs.next()) ,我觉得十分奇怪 想不太通,希望大虾解析哈!谢谢了
[img]http://dl.iteye.com/upload/attachment/567926/4692d592-45a7-3eca-a586-b37b95aab853.jpg[/img]