java查询oracle数据库问题!

whlusha 2008-04-21 03:12:35
//2个SQL语句,测试用其中一个
String sql = "select * from ater";
String query = "select dtime from ater"; // dtime为ater表中的一个字段名
......
ResultSet rs = stmt.executeQuery(query); //执行SQL语句,返回结果集
while(rs.next()){
for(int j = 1; j < rs.getMetaData().getColumnCount(); j++){
System.out.println(s[j-1] + "的值是: " + rs.getString(j));
}

我用的eclipse3.2 + myeclipse5.5 JDK1.5 oracle8数据库
如果 ResultSet rs = stmt.executeQuery(sql); 可以正常显示打印结果集
如果 ResultSet rs = stmt.executeQuery(query); 则什么都不打印

在PL/SQL中执行
sql>select * from ater;
sql>select dtime from ater;
都能正常打印出结果

请问怎么解决??
...全文
195 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
whlusha 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 li_d_s 的回复:]
for(int j = 1; j < rs.getMetaData().getColumnCount(); j++){
==>
for(int j = 1; j <= rs.getMetaData().getColumnCount(); j++){

否则只有1列的话你的循环就不执行了。。
[/Quote]


一语中地 果然如此 谢谢···
xian_fish 2008-04-21
  • 打赏
  • 举报
回复
getColumnCount()方法返回的是结果的列数,
所以rs.getMetaData().getColumnCount() == 1,
如果查询的只有一个字段,代码可改为如下:
String query = "select dtime from ater"; // dtime为ater表中的一个字段名
......
ResultSet rs = stmt.executeQuery(query); //执行SQL语句,返回结果集
int j = 0;
while(rs.next()){
{
System.out.println(s[j++] + "的值是: " + rs.getString(j));
}
panxuan 2008-04-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 li_d_s 的回复:]
for(int j = 1; j < rs.getMetaData().getColumnCount(); j++){
==>
for(int j = 1; j <= rs.getMetaData().getColumnCount(); j++){

否则只有1列的话你的循环就不执行了。。
[/Quote]
li_d_s 2008-04-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 DJxiaoyang 的回复:]
已经用了while了还用for干嘛?
rs.getString(j)这个是取第几个的意思,换成rs.getString("dtime")
问题百出...
[/Quote]
while是记录循环,for是一条记录里面的字段循环。。。
love060324 2008-04-21
  • 打赏
  • 举报
回复
这个不太懂帮你顶下
Shine_Panda 2008-04-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 li_d_s 的回复:]
for(int j = 1; j < rs.getMetaData().getColumnCount(); j++){
==>
for(int j = 1; j <= rs.getMetaData().getColumnCount(); j++){

否则只有1列的话你的循环就不执行了。。
[/Quote]
因为rs.getMetaData().getColumnCount(); 为 1 啊!
DJxiaoyang 2008-04-21
  • 打赏
  • 举报
回复
已经用了while了还用for干嘛?
rs.getString(j)这个是取第几个的意思,换成rs.getString("dtime")
问题百出...
zyf_xl 2008-04-21
  • 打赏
  • 举报
回复
Java 技术交流群!入群先看公约!

本群公约:互助、互勉、共同进步!惑则问、知则答、不知则表示关注。帮助新手、细心回答。
同意上述公约者·申请加入!
QQ群号:25922618
li_d_s 2008-04-21
  • 打赏
  • 举报
回复
for(int j = 1; j < rs.getMetaData().getColumnCount(); j++){
==>
for(int j = 1; j <= rs.getMetaData().getColumnCount(); j++){

否则只有1列的话你的循环就不执行了。。
s_liangchao1s 2008-04-21
  • 打赏
  • 举报
回复
query关键字?换个名称

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧