如何从DB2数据库获取值并将其分配给字符串值?

时间:2013-03-03 06:47:12

标签: java database string methods db2

我正在使用连接到DB2数据库的java应用程序。我想要做的是从我查询过的DB2表中获取一个值并将其分配给java中的字符串值,你能告诉我如何操作吗?我亲自尝试过,我会告诉你我的代码,但我想并且知道这是错的,请帮忙......

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%确定我的数据库是连接的,只是因为我无法获得所需的值,因为在某种程度上我做错了方法。

1 个答案:

答案 0 :(得分:2)

您在获取值之前忘记致电rs.next()

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

如果您不致电rs.next(),则光标不会指向任何行。