2014-06-16 53 views
0
public static void baglanti(){ 

    OracleDataSource ods; 
    //String driverName = "oracle.jdbc.driver.OracleDriver"; 

    try { 
     ods = new OracleDataSource(); 
     ods.setURL("jdbc:oracle:thin:@//aaaaaa:2122/XXXXX"); 
     ods.setUser("aaaa"); 
     ods.setPassword("aaaa"); 

     Connection conn=ods.getConnection(); 
     Statement st=conn.createStatement(); 
     ResultSet rs=st.executeQuery("SELECT DESCRIPTION FROM example"); 

     while (rs.next()) { 
      //rs.getString("ID"); 
      System.out.println("DESC : "+rs.getString("1")); 

     } 

    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 



} 

我有一個錯誤我的連接java從oracle.user名稱,密碼是正確的,但我無法連接到數據庫。 謝謝。在java中的Oracle連接(錯誤是無效的列名)

+0

您的查詢是選擇'DESCRIPTION'列,但是您嘗試從ResultSet獲取'ID'(註釋)和'1'列,這就是爲什麼你會得到我想的錯誤。 – SudoRahul

+0

讀取錯誤'StackTrace',其中的列名稱無效。 –

回答

2

您使用getString的方式是錯誤的。 您可以通過索引或列標籤:

System.out.println("DESC : "+rs.getString(1)); 

System.out.println("DESC : "+rs.getString("description")); 

您通過指數爲String,這就是錯誤的。

0

既然你說你有一個連接錯誤,請嘗試以下代碼連接部分:

OracleDataSource ds = new OracleDataSource(); 
ds.setDriverType("thin"); 
ds.setServerName("dssw2k01"); 
ds.setPortNumber(1521); 
ds.setDatabaseName("orcl"); // sid 
ds.setUser("scott"); 
ds.setPassword("tiger"); 

如果連接是正確的,執行查詢,即使如此,你將有問題的解析結果集,除非你改正以下一個爲:

System.out.println("DESC : "+rs.getString(1)); 

OR System.out.println("DESC : "+rs.getString("DESCRIPTION"));

rs.getString(),rs.getInt()等所有要麼

  1. 從1

  1. 起始索引爲整數參數結果集輸出的別名爲字符串