2013-03-03 73 views
-1

我正在使用連接到DB2數據庫的Java應用程序。我想要做的是從我查詢過的DB2表中獲取一個值,並將其賦值給java中的字符串值,請教我如何操作?我曾嘗試過自己,我會告訴你我的代碼,但我想知道這是不對的,請大家幫幫忙...如何從DB2數據庫獲取值並將其分配給字符串值?

public class GetValueFromDB2 implements ActionListener{ 
    static String value; 

    public void actionPerformed(ActionEvent e){ 
     Object source = e.getSource(); 
     if(source==testValue){ //testValue = a button to test my results 
     setValue(getValue()); 
     JOptionPane.showMessageDialog(null, value); 
     } 
    } 

    public static void main(String[] args){ 
     //GUI Implementations here... 
    } 

    public static void setValue(String val){ 
    try{ 
     Connection con = DriverManager.getConnection("jdbc:db2://localhost:50000/db","username","password");   
     String sql = "select column1 from \"user\".\"mytable\" where column2='abc'"; 
     Statement st = con.createStatement(); 
     ResultSet rs = st.executeQuery(sql); 
     val = rs.getString(1); //I think this is the part I'm mistaken 
     value = val; 
    }catch(SQLException e){ 
     JOptionPane.showMessageDialog(null, e); 
    } 
    } 

    public static String getValue(){ 
     return value; 
    } 
} 

而在我的數據庫中的表是這樣的:

"table: mytable, schema: user" 
column1   column2 
--------   -------- 
john    abc 
jeff    xyz 
ian    123 

所以基本上,JOptionPane應該顯示「john」作爲字符串輸出,這就是我想要做的,請幫助我,我真的很需要這個。

  • 我100%肯定,我的數據庫連接,它只是我不能得到所期望的價值我想,因爲好歹我做了錯誤的方法。
+0

你說過程序應該做什麼,但不是它實際做了什麼。 – 2013-03-03 10:33:54

+0

請你詳細說明一下嗎?我的問題和我提供的細節可能是模糊的,但我相信我已經提供了所有需要的細節......如果您對某些事情感到困惑,請讓我知道,請......我至少需要弄明白不惜一切代價... – 2013-03-03 10:44:16

+0

當你運行這段代碼時會發生什麼?你說過「我知道這是錯誤的」。你說過「它應該顯示約翰」。但是你沒有說出它在運行時的功能。有什麼異常?怎麼了? – 2013-03-03 10:46:57

回答

2

你忘了所獲得的價值之前調用rs.next()

if (rs.next()) { 
    val = rs.getString(1); 
} 

如果你不叫rs.next(),光標不指向任何行。

+0

非常感謝@ jb-nizet,它工作!我真的非常感謝你,非常感謝你糾正了我犯的一個簡單的錯誤,再次感謝你! – 2013-03-03 13:01:08

相關問題