回 帖 发 新 帖 刷新版面

主题:java查询oracle数据库问题!

//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); 可以正常显示打印结果集
[color=FF0000]如果 ResultSet rs = stmt.executeQuery(query); 则什么都不打印[/color]

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

请问怎么解决??

回复列表 (共4个回复)

沙发

dtime是不是varchar类型?

板凳

String query = "select dtime from ater"; 
是一列多行
String sql = "select * from ater"; 
是多列多行
rs.getString(j);
j是0才对吧

3 楼

对J是0才行

getString() 是从0开始的,J一开始就为1了,所以什么都显示不出来

4 楼

已经解决了

for(int j = 1; j <= rs.getMetaData().getColumnCount(); j++){
    System.out.println(s[j-1] + "的值是: " + rs.getString(j));
}

 j <= rs.getMetaData().getColumnCount();   就行了
如果j为0的话  rs.getString(j)就取不到值了  会报异常

我来回复

您尚未登录,请登录后再回复。点此登录或注册