【问题标题】:Can't get SQL query result, when using * (not column names)使用 *(不是列名)时无法获取 SQL 查询结果
【发布时间】:2016-09-28 19:05:01
【问题描述】:

我只能在使用 select columnname from tablename 时从 SQL 查询执行中获取结果,但在使用 select * from tablename 时不能获得结果

public static void connectAndExecute(String host, String uName, String uPass, String sqlQuery) {
    try { 
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    } catch (SQLException e) {          
        e.printStackTrace();
    }

    try {
        Connection con=DriverManager.getConnection(host, uName, uPass);
        String[] conData = null;
        Statement stmt = null;      

        try {
            stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(sqlQuery);
            /*this is the place of my problem*/
        } 
        catch (SQLException e) {            
            e.printStackTrace();
        }
    }
    catch (SQLException err) {
        System.out.println(err.getMessage());
    }
}

【问题讨论】:

  • 是什么阻碍了您获得结果?真正的问题是什么?
  • 您看到一些异常吗?在这种情况下,请发布堆栈跟踪

标签: java sql jdbc


【解决方案1】:

使用ResultSet.class 方法来获得所需的结果。您可以给出列名或列索引。

getInt(int columnIndex)

获取当前行中指定列的值 这个 ResultSet 对象在 Java 编程语言中是一个 int。

getString(int columnIndex)

获取当前行中指定列的值 在 Java 编程语言中将此 ResultSet 对象作为字符串。

以下是您可以如何实现它:

while(rs.next()){ 
//Retrieve by column index 
int id = rs.getInt(1); //assume id is at 1st index
int age = rs.getInt(4); //assume age is at 4th index
String first = rs.getString(2); // assume first name is at 2nd index
String last = rs.getString(3); // assume last name is at 3rd index
//Display values 
System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last);
System.out.println(" End of one row"); 
}

【讨论】:

  • 谢谢,这真的很有帮助。它还向我展示了我的问题有多愚蠢
  • 编码愉快!如果它真的有帮助,您可以将其标记为正确答案。
  • 没问题,兄弟.. every1 必须从某个地方开始。
猜你喜欢
  • 2021-12-26
  • 2011-07-08
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多