“ java.lang.NumberFormatException:对于输入字符串”此异常的原因是什么

java sql

428 观看

1回复

1 作者的声誉

我正在Java中运行一组SQL查询来检索a,b和c值。之后,我想对它们进行一些操作并将结果打印给用户。

运行以下代码时,我收到“ java.lang.NumberFormatException:用于输入字符串”的信息:

try {
    String sql1="SELECT COUNT(CASE WHEN Type = 'Sick' THEN 1 ELSE 0 END) AS sick FROM `leave` WHERE `leave`.`EID`=? AND `leave`.`Month`=?";
    pst=conn.prepareStatement(sql1);
    int a = Integer.parseInt(sql1); 
    String sql2="SELECT COUNT(CASE WHEN Type = 'annual' THEN 1 ELSE 0 END) AS annual FROM `leave` WHERE `leave`.`EID`=? AND `leave`.`Date`=?";
    pst=conn.prepareStatement(sql2);
    int b= Integer.parseInt(sql2);
    String sql3="SELECT COUNT(CASE WHEN Type = 'Half day' THEN 1 ELSE 0 END) AS Half_day FROM `leave` WHERE `leave.EID`=? AND `leave`.`Date`=?";
    pst=conn.prepareStatement(sql3);
    rs=pst.executeQuery();
    int c= Integer.parseInt(sql3);

    if ((a+b+(c/2)) < 14) {
        int double_pay = 14 - (a+b+(c/2));
    }
    else {
        int double_pay = 0;
    }
    txt_double_pay.setText(double_pay+"");
} 
catch(Exception e){
    JOptionPane.showMessageDialog(null,e);
}

有人知道这种例外的原因吗?

作者: Isurika Perera 的来源 发布者: 2017 年 9 月 15 日

回应 1


2

35661 作者的声誉

原因是

Integer.parseInt(sql3)

要求sql3是一个String,其中包含可以解析为Integer的数据。

您的sql3对象却持有以下内容:

sql3="SELECT COUNT(CASE WHEN Type = 'Half day' THEN 1 ELSE 0 END) 
   AS Half_day FROM `leave` WHERE `leave.EID`=? AND `leave`.`Date`=?";

因此,java将永远无法获得该字符串的任何数量。

作者: ΦXocę 웃 Пepeúpa ツ 发布者: 2017 年 9 月 15 日
32x32