Java 如何从DB2数据库中获取值并将其分配给字符串值?
我正在使用连接到DB2数据库的java应用程序。我想做的是从我查询过的DB2表中获取一个值,并在java中将其分配给一个字符串值,您能教我如何使用它吗?我自己也试过了,我会给你看我的代码,但我想,我知道这是错误的,请帮助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
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,成功了!我真的,真的很感谢你,非常感谢你纠正了我犯的这么一个简单的错误,再次感谢你!