我使用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)
答案 0 :(得分:2)
因为您尝试解析的字符串是""
,无法解析为int
。
您可能需要验证输入,或者如果您想允许""
,则为此类案例指定一些默认值。
答案 1 :(得分:1)
它不会在编译时显示,no - input.text
是一个空字符串(在执行时),当你尝试解析它时,那就失败了。
当input.text
为空时,您需要确定要执行的操作。