Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从DB2数据库中获取值并将其分配给字符串值?_Java_Database_String_Methods_Db2 - Fatal编程技术网

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

Java 如何从DB2数据库中获取值并将其分配给字符串值?,java,database,string,methods,db2,Java,Database,String,Methods,Db2,我正在使用连接到DB2数据库的java应用程序。我想做的是从我查询过的DB2表中获取一个值,并在java中将其分配给一个字符串值,您能教我如何使用它吗?我自己也试过了,我会给你看我的代码,但我想,我知道这是错误的,请帮助 public class GetValueFromDB2 implements ActionListener{ static String value; public void actionPerformed(ActionEvent e){ Obj

我正在使用连接到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%确信我的数据库是连接的,只是我不能得到我想要的值,因为在某种程度上我做了一个错误的方法

在获取值之前,您忘记调用
rs.next()

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

如果不调用
rs.next()
,光标不会指向任何行。

您已经说过程序应该做什么,但没有说它实际做什么。您能详细说明一下吗?我的问题和我提供的细节可能很模糊,但我相信我提供了所有需要的细节。。。如果你对某事感到困惑,请告诉我,请。。。我真的需要不惜一切代价至少弄明白…当你运行这段代码时会发生什么?你说过“我知道这是错的”。你说过“它应该显示约翰”。但你还没有说当你运行它时它会做什么。有例外吗?发生了什么?好的,我现在明白了,对不起,谢谢你澄清。。。如您所见,我设置了val=rs.getString(1),据我所知,它应该获得select语句输出的值。但问题是,当我运行程序时,会出现一个错误,上面写着“在当前光标位置读取的操作无效。错误代码=-4476,SQLSTATE=02501”,并且在我的JOptionPane消息对话框中没有显示字符串值。希望我解释的情况足够公平,我提前向你表示感谢!非常感谢@jb nizet,成功了!我真的,真的很感谢你,非常感谢你纠正了我犯的这么一个简单的错误,再次感谢你!