如何在java中处理sql异常?

时间:2013-06-22 06:04:10

标签: java sql

我正在尝试在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());
    }

}                                   

3 个答案:

答案 0 :(得分:1)

Nullempty不相同。如果您将列值设置为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