2010-09-27 55 views
1

我已经一个查询,返回字符串值,我的查询是处理在Java布尔结果集

选择情况下,当(SELECT COUNT(DISTINCT style_packing_spec_id)从packing_spec_uses_pack P,SP style_pack其中sp.style_pack_id = p.style_pack_id和SP !.style_id = 1701)=从style_packing_spec(SELECT COUNT(不同style_packing_spec_id),其中style_id = 1701),那么 'DonotProceed' 其他 '继续' 端“; 它给结果如下

?case? 
---------- 
DonotProceed 

如何执行,这是在java中,如何处理这个结果集,我试过这样的

String sql="query"; 
ResultSet rs=stmt.executeQuery(sql); 

它返回nullpointerexception String str = rs.getString(1);

+1

,做你,你是不是告诉我们任何错误消息?如“无效列索引0”或“第一行之前的游标”? – Thilo 2010-09-27 04:38:38

+0

它显示类型不匹配错误无法从布尔转换为布尔 – Mohan 2010-09-27 04:47:03

+0

我正在使用postgresql – Mohan 2010-09-27 04:47:20

回答

2

我从来没有从查询返回的布尔值(Oracle不这样做......),但我认为它的工作原理。您只需转到结果集的第一行,并且列索引以1(而不是0)开头。

ResultSet rs=stmt.executeQuery(sql); 
try{ 
    rs.next();    // move to the first row 
    return rs.getBoolean(1); // first column is 1 
} 
finally{ 
    rs.close(); 
} 

更新:

它显示类型不匹配错误无法从布尔值转换为你使用Java 1.4布尔

?对于Java5及以上版本,这应该通过自动装箱来处理。但是,你也可以使用原始的布尔变量以匹配JDBC返回解决它:

boolean str = rs.getBoolean(1); // I question the variable name, though 
+0

请注意我编辑的查询它显示空指针异常 – Mohan 2010-09-27 04:53:14

+0

java版本“1.4.2_18”我的java版本 – Mohan 2010-09-27 05:00:09

+0

蒂洛,在上面的代码的帮助下,我做得很对。非常感谢 – Mohan 2010-09-27 05:55:56