我正在使用连接到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”显示为字符串输出,这就是我想要做的,请帮助我,我真的需要这个。
答案 0 :(得分:2)
您在获取值之前忘记致电rs.next()
:
if (rs.next()) {
val = rs.getString(1);
}
如果您不致电rs.next()
,则光标不会指向任何行。