将sql数据库中的值存储到java中的变量

将sql数据库中的值存储到java中的变量,java,mysql,Java,Mysql,当我尝试在项目中输入详细信息时,它在第一个try子句中给出了一个错误,即从数据库中重新获得的值没有插入到局部变量中。 该值似乎没有被解析为整数,而是给出了一个空值 连接器、preparedstatement、Resultset值在我的代码中没有定义,但在实际程序中它们连接正确 * ,, 如果这里有人能帮我解决我的错误那就太好了。 如注释中所述,我修改了第一个try-catch块以使用PreparedStatement功能,并将parseInt(getString())更改为一个简单的ge

当我尝试在项目中输入详细信息时,它在第一个try子句中给出了一个错误,即从数据库中重新获得的值没有插入到局部变量中。 该值似乎没有被解析为整数,而是给出了一个空值

连接器、preparedstatement、Resultset值在我的代码中没有定义,但在实际程序中它们连接正确

*

,,

如果这里有人能帮我解决我的错误那就太好了。
如注释中所述,我修改了第一个try-catch块以使用
PreparedStatement
功能,并将
parseInt(getString())
更改为一个简单的
getDouble()
,您可以对第二个块应用相同的更改;)


我相信引发异常的是
Integer.parseInt(rs.getString(“worksum”))
,尝试将其更改为
Double.parseDouble()
,或者您可以使用
getDouble(“worksum”)
而不是
getString()
,而且,您使用准备语句的方式是错误的,您不应该使用字符串连接,而是在创建语句后设置参数,请查看或感谢@ozerobd,Double.parseDouble()word,该值已成功插入文本字段。谢谢@ozerobd,我将查看文档并尝试更正我的错误无问题,很高兴我提供了帮助!^^还要检查我在回答中提供的解决方案,它考虑到了以预期方式使用PreparedStatement
int month = comb_month.getSelectedIndex() + 1;

try {
String sql1 = "SELECT SUM(hours) AS worksum FROM attandance WHERE month='" + month + "' AND userId='" + txtSearch.getText() + "'";
                System.out.println(sql1);
                pst = conn.prepareStatement(sql1);
                rs = pst.executeQuery();
                while (rs.next()) {
                    loggedinId.workinghours = Integer.parseInt(rs.getString("worksum"));
                    System.out.println(loggedinId.workinghours);
                }
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e.getMessage());
            }
    try {
                String sql2 = "SELECT COUNT(hours) AS workdays FROM attandance WHERE month='" + month + "' AND userId='" + txtSearch.getText() + "'";
                System.out.println(sql2);
                pst = conn.prepareStatement(sql2);
                rs = pst.executeQuery();
                while (rs.next()) {
                    loggedinId.noWorkdayts = Integer.parseInt(rs.getString("workdays"));
                    System.out.println(loggedinId.noWorkdayts);
                }
                int value = loggedinId.workinghours + loggedinId.noWorkdayts * 8;
                System.out.println(value);
                txtOverTime.setText(String.valueOf(value));
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e.getMessage());
            }

//loggedinId.workinghours and loggedinId.noWorkdayts are constent integer variables created in a seperate class
int month = comb_month.getSelectedIndex() + 1;

try {
    String sql1 = "SELECT SUM(hours) AS worksum FROM attandance WHERE month=? AND userId=?;";
    pst = conn.prepareStatement(sql1);
    pst.setInt(1,month);
    pst.setString(2,txtSearch.getText());
    rs = pst.executeQuery();
    while (rs.next()) {
        loggedinId.workinghours = rs.getDouble("worksum");
        System.out.println(loggedinId.workinghours);
    }
} catch (Exception e) {
    JOptionPane.showMessageDialog(null, e.getMessage());
}