怎样从ResultSet中读出有条件限制的某几行 怎样从ResultSet中读出有条件限制的某几行?比如:现在我的resultset中10行数据,它们的列分别是id,word,length;我要从中提取出length=3的数据,该怎么来操做啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你为什么不在sql中就限制length=3呢? ArrayList ar =new ArrayList();while(rs.next){ int len = rs.getInteger(3); if(len==3){ id = rs.getXXX(1); word= rs.getXXX(2); length= rs.getXXX(3); //再这条记录封装成一个对象加到集合中去。 } } 是这样的,我先用了sql语句ConDb dbConn = new ConDb();//获取数据连接 stmt = conn.createStatement(); rs = stmt.executeQuery(strSQL);//执行查询语句把数据从入了rs中,现在有要对rs中的某些特定数据进行操作,不知道该怎么把他们取出来!如果在用sql语句,那re集中又没有表?不知道该怎么办? sql="select * from table where length=3" Connection con = null;//自己实例化 try { Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery("select * from zhao"); rs.absolute(3); String s = rs.getString("id"); } catch (SQLException e) { e.printStackTrace(); } 为什么不考虑在查询数据库的时候就把条件加进去呢?这样ResultSet中的数据就全是符合条件。非要在ResultSet中解决的话,我想的到的办法就是循环一条条判断了。 xxx a = new xxx();int i=0;while(rs.next){ i++; if(i==3){ a.id = rs.getXXX(1); a.word= rs.getXXX(2); a.length= rs.getXXX(3); break; }return a; FilteredRowSet frs = new FilteredRowSetImpl(); frs.populate(rs); Range name = new Range("Alpha", "Bravo", "columnName"); frs.setFilter(name); frs.next()修改一下就可以了 代码这样写没多大意义啊,反正都从数据库读到rs对象了,就算是做分页,下一次在查那不又是另一个rs对象。。 如果楼主是要做分页,可以考虑从数据库角度考虑,每次只取部分值用ms-sql可以用select top 10 from where id>** and 你的其他条件,这样可以从某个位置只取10条,oracle可以考虑用rownum select * from myTable where length=3 其实你可以用SQL直接查到像要的数据。或者在while(rs.next){ }中做判断。或者在 while(rs.next){ }全都取出来放到List中,在List中过滤。 求高手详解,谢谢 关于HashMap HashSet问题!SOS 请教一下关于struts中的tiles的问题 请教一个向socket服务端发送注册信息的问题 问y 关于java import的问题(在线等) 谁知道怎么做一个图形按钮?比如按钮上是一个表示“放大”的图形?或者是一个手形? Java中如何获取一个URL地址的网页的Html代码,并显示出来? 请问如何在java应用程序当中实现打印功能? 第一次在这问问题,真的希望大家尽快帮帮我 在JAVA中怎样连接数据库? java table 问题 求一java正则表达式
ArrayList ar =new ArrayList();
while(rs.next){
int len = rs.getInteger(3);
if(len==3){
id = rs.getXXX(1);
word= rs.getXXX(2);
length= rs.getXXX(3);
//再这条记录封装成一个对象加到集合中去。
}
}
ConDb dbConn = new ConDb();//获取数据连接
stmt = conn.createStatement();
rs = stmt.executeQuery(strSQL);//执行查询语句
把数据从入了rs中,
现在有要对rs中的某些特定数据进行操作,不知道该怎么把他们取出来!如果在用sql语句,那re集中又没有表?不知道该怎么办?
Connection con = null;//自己实例化
try {
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("select * from zhao");
rs.absolute(3);
String s = rs.getString("id");
} catch (SQLException e) {
e.printStackTrace();
}
这样ResultSet中的数据就全是符合条件。非要在ResultSet中解决的话,我想的到的办法就是循环一条条判断了。
int i=0;
while(rs.next){
i++;
if(i==3){
a.id = rs.getXXX(1);
a.word= rs.getXXX(2);
a.length= rs.getXXX(3);
break;
}
return a;
FilteredRowSet frs = new FilteredRowSetImpl();
frs.populate(rs);
Range name = new Range("Alpha", "Bravo", "columnName");
frs.setFilter(name);
frs.next()修改一下就可以了
用ms-sql可以用select top 10 from where id>** and 你的其他条件,
这样可以从某个位置只取10条,oracle可以考虑用rownum
或者在while(rs.next){ }中做判断。
或者在 while(rs.next){ }全都取出来放到List中,在List中过滤。