将字符串转换为预处理语句的整数

时间:2011-06-09 12:21:20

标签: java jdbc java-ee javafx javafx-2

我使用javafx使用prepardstatement更新数据库,但在运行时我在控制台上收到此错误并且在编译时没有显示。看起来字符串没有获得输入的值。也许我错了还在搞清楚

var input: TextBox;

var inputnum = Integer.parseInt({input.text});


stmt = conn.prepareStatement("INSERT into dummy2 values(?,?,?)");
            stmt.setString(1,"");
            stmt.setString(2, "");
            stmt.setInt(3, inputnum);

得到错误: -

java.lang.NumberFormatException: For input string: ""
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Integer.parseInt(Integer.java:468)
        at java.lang.Integer.parseInt(Integer.java:497)
        at testint.Main$Main$Script.applyDefaults$(Main.fx:36)
        at testint.Main$Main$Script.applyDefaults$(Main.fx:36)
        at testint.Main.javafx$run$(Main.fx)

2 个答案:

答案 0 :(得分:2)

因为您尝试解析的字符串是"",无法解析为int

您可能需要验证输入,或者如果您想允许"",则为此类案例指定一些默认值。

答案 1 :(得分:1)

它不会在编译时显示,no - input.text是一个空字符串(在执行时),当你尝试解析它时,那就失败了。

input.text为空时,您需要确定要执行的操作。