我正在尝试在java中创建一个简单的注册表单。 我已经在sql中创建了一个表,其中我选择了不允许空值,但是当我注册而没有输入任何值时,没有给出异常....所有空值都被排除了.. !! 我该怎么办?
private void b1ActionPerformed(java.awt.event.ActionEventevt) {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:mydsn1");
PreparedStatement pstmt= con.prepareStatement("insert into project.dbo.signup values(?,?,?,?,?,?)");
pstmt.setString(1,t1.getText());
pstmt.setString(2,t2.getText());
pstmt.setString(3,String.valueOf(t3.getText()));
pstmt.setString(4,t4.getText());
pstmt.setString(5,t5.getText());
pstmt.setString(6,c1.getSelectedItem().toString());
pstmt.executeUpdate();
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null,e.toString());
}
catch(Exception ob)
{
JOptionPane.showMessageDialog(null,ob.toString());
}
}
答案 0 :(得分:1)
Null
和empty
不相同。如果您将列值设置为not null
,则无法插入任何null
,或者您必须输入值。但这并不意味着你不能输入emptry string ..
null和emptry string
的示例String s = null;
String s = "";
所以在你的情况下,当你没有在TextBox中插入任何输入并使用getText()
获取值时,它返回一个空字符串而不是null。我喜欢你了解不同的
所以要有例外,你可以做一件事。检查输入字符串,如果长度为0,则不要插入,或插入空值,如
String s = t1.getText();
if(s.length() == 0)
pstmt.setString(1, null); // or dont insert
答案 1 :(得分:0)
t1.getText()
返回空值""
不为空。为此,您需要检查空值,如
"".equals(t1.getText())
答案 2 :(得分:0)
getText()方法永远不会返回null。它返回CharSequence,其内容可能为空。
而不是使用getText()。toString()。equals(“”)或反之,getText()可能更快.length()== 0