我当前正在使用考勤管理系统,但是当我单击“保存”按钮时,此问题显示为“ java.lang.NumberFormatException:对于输入字符串:”” 这是我的代码:
try{
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/attendance","root","sydneydel");
String sql = "insert into attendance.student_info values(?,?,?,?,?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1,Integer.parseInt(jTextField2.getText()));
pst.setString(2, last.getText());
pst.setString(3,first.getText());
pst.setString(4,mid.getText());
String gender;
if (jRadioButton1.isSelected()){
gender=jRadioButton1.getText();
}
else{
gender=jRadioButton2.getText();
}
pst.setString(5, gender);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "SUCCESSFUL");
conn.close();
String data1= last.getText();
String data2= first.getText();
String data3= mid.getText();
String data4= gender;
Object[] row = {1, data2 + " " + data3 + " " + data1, data4};
model = (DefaultTableModel) table.getModel();
model.addRow (row);
first.setText("");
jTextField2.setText("");
last.setText("");
mid.setText("");
buttonGroup1.clearSelection();
if((last == null)&& (first==null)&& (buttonGroup1.equals(null))){
JOptionPane.showMessageDialog(null, "SAVE ERROR\nFill-up the information needed");
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
}
如何解决我的问题,以及如何改进该程序?
答案 0 :(得分:1)
parseInt
在第四行从jTextField2.getText()
接收到一个空字符串,当然不能将其解析为整数。
使用调试器找出jTextField2.getText()
为空白的原因。实际上在jTextField2
中输入了数字吗?
答案 1 :(得分:0)
这是我的第一个答案;)
String value = "10";
Integer convertedForm = Integer.parseInt(value);
这将起作用,并且值将转换为Integer
,因为值是数字形式
但是,如果我们这样传递""
或"abc"
,则由于我们没有传递数字,因此无法将其从形式转换为Integer
。这样它将得到NumberFormatException
。
请处理NumberFormatException
,如果您通过其他然后输入数字