2016-09-28 24 views
0

我只能从当我使用select columnname from tablename一个SQL查询执行的结果,但不是当我使用select * from tablename无法获得SQL查询的结果是,使用*(没有列名)

public static void connectAndExecute(String host, String uName, String uPass, String sqlQuerry){ 
    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(sqlQuerry); 
     /*this is the place of my problem*/ 
    } 
     catch (SQLException e) {    
     e.printStackTrace(); 
    } 
    } 
    catch (SQLException err){ 
     System.out.println(err.getMessage()); 
    } 
+0

什么阻止你得到的结果吗?什么是实际问题? – David

+0

你看到一些例外吗?在这种情况下,请发布堆栈跟踪 – AlexR

回答

1

使用ResultSet.class方法时得到想要的结果。您可以提供列名称或列索引。

getInt(int columnIndex)

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

getString(int columnIndex)

检索指定列的 此ResultSet对象的Java编程语言中String的当前行中的值。

这里是你如何实现它:

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"); 
} 
+0

谢谢,这真的很有帮助。它也显示了我的问题是多么愚蠢 –

+0

快乐的编码!如果真的有帮助,您可以将其标记为正确答案。 – Shaggy

+0

兄弟没问题.. every1必须从某处开始。 – Shaggy