2011-12-16 55 views
0

我試圖連接到Sybase ASE數據庫。當我檢索數據時,我得到NullPointerException rs = stmt.executeQuery(queryData);
我試着用dbVisualizer進行同樣的查詢,但一切都很好。執行rs = stmt.executeQuery時發生NullPointerException(queryData)

static void retrieveData() { 
    try { 
     String queryData="SELECT * FROM med WHERE item_id like 'A00001'"; 
     // process the results. 
     rs = stmt.executeQuery(queryData); 
     while (rs.next()) { 
      String s = rs.getString("item_naam"); 
      String n = rs.getString("item_mnemo"); 
      System.out.println(s + " " + n); 
     } 
    }catch(SQLException ex) { 
     System.err.println("RetrieveData: " + ex.getMessage()+ " sqlstate = " + 
       ex.getSQLState()); 
     System.exit(1); 
    } 
+0

你在哪裏初始化語句? – hovanessyan 2011-12-16 09:49:49

回答

2

的問題似乎是,stmt沒有初始化,我認爲你至少已經定義的變量stmt,因爲如果不是,開發環境將顯示一個錯誤。

有很多NullpointerExceptions沒有初始化變量,我的意思是你定義它,然後你忘記初始化它,它是一個很好的建議(如果你沒有內存問題,你opften忘記初始化變量)同時做兩件事情。

喲可以這樣做:

Statement s = c.createStatement(); 
    rs = s.executeQuery(queryData); 

,並記住,c其中previoulsy初始化和Rs爲之前定義...

4

stmt對象可能未初始化。

+0

我在課堂上做過如下: `public class BcfiConnection Static connection con; static聲明stmt; static ResultSet rs;` – itro 2011-12-22 13:26:13

+0

這是聲明,不是初始化。您需要創建一個連接,然後使用它來創建該語句。 – pablochan 2011-12-22 13:38:45

相關問題