大家好,我在连接了ORACLE后,发现只能显示第一列(empno)的内容。代码如下,有可能是getString(1)的问题,可是ResultSet中提供了带一个参数的方法,那有什么办法显示全部的列呢?望不吝赐教,谢谢!
代码如下:import java.sql.*;
import java.io.*;public class JdbcTest { public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

try {
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:Oracle9i";
String username = "scott";
String password = "tiger";
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery("select * from emp "); while (rs.next()) {
System.out.println(rs.getString("empno"));
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }}

解决方案 »

  1.   

    rs.getString("empno")
    rs是一个元数据吧。
    如果你想取其他的列,那么把empno改为其他列名,如果是整数,getString换为取整数的就可以了。
      

  2.   

    我已经取到了,用的是多个System.out.print(rs.getString(1)+"\t");System.out.print(rs.getString(2)+"\t");+System.out.print(rs.getString(3)+"\t");......但是如果这个表有100列的时候,那显然这样是不合适的。那该怎么做才能一下子取出所有的纪录呢?
      

  3.   

    你要先用得到ResultSetMetaData返回列的信息,数目才行
    ResultSetMetaData metaData= theResultSet.getMetaData();
    int colcount = metaData.getColumnCount();