Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中处理sql异常?_Java_Sql - Fatal编程技术网

如何在java中处理sql异常?

如何在java中处理sql异常?,java,sql,Java,Sql,我正在尝试用java创建一个简单的注册表单。 我在sql中创建了一个表,其中我选择了不允许空值,但当我注册时,没有输入任何值,不会出现异常。。。。所有空值都被排除在外。。!! 我该怎么办 private void b1ActionPerformed(java.awt.event.ActionEventevt) { try{ Class.forName("su

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

}                                   

Null
empty
不相同。如果将列值设置为
notnull
,则不能插入任何
null
,或者必须输入值。但这并不意味着不能输入空字符串

空字符串和空字符串的示例

String s = null;
String s = "";
因此,在您的情况下,当您不在文本框中插入任何输入并使用
getText()
获取值时,它将返回一个不为null的空字符串。我希望你能理解其中的差别

所以要有一个例外,你可以做一件事。如果长度为0,请检查输入字符串,然后不要插入它,或者在那里插入空值,如

String s = t1.getText();
if(s.length() == 0)
    pstmt.setString(1, null);  // or dont insert

Null
empty
不相同。如果将列值设置为
notnull
,则不能插入任何
null
,或者必须输入值。但这并不意味着不能输入空字符串

空字符串和空字符串的示例

String s = null;
String s = "";
因此,在您的情况下,当您不在文本框中插入任何输入并使用
getText()
获取值时,它将返回一个不为null的空字符串。我希望你能理解其中的差别

所以要有一个例外,你可以做一件事。如果长度为0,请检查输入字符串,然后不要插入它,或者在那里插入空值,如

String s = t1.getText();
if(s.length() == 0)
    pstmt.setString(1, null);  // or dont insert
t1.getText()
返回空值
“”
不为空。为此,您需要检查空值,如

"".equals(t1.getText())
t1.getText()
返回空值
“”
不为空。为此,您需要检查空值,如

"".equals(t1.getText())
getText()方法,infact,从不返回null。它返回内容可能为空的CharSequence

与其执行getText().toString().equals(“”)或反之亦然,不如执行getText().length()==0,实际上,getText()方法永远不会返回null。它返回内容可能为空的CharSequence


与其执行getText().toString().equals(“”)或反之亦然,不如执行getText().length()==0

那么我应该如何输入我想要的内容..?有一个函数getSelectedItem用于文本字段…它将为空文本字段返回空值,那么我应该如何输入我想要的内容..?有一个函数getSelectedItem用于文本字段…它将为空文本字段返回空值我是java的一名程序员…这将非常有用如果你想编辑上面的代码,这很有用?String text=t1.getText();text=”“.equals(文本)?空:文本;pstm.设置字符串(1,文本)///对所有其他字段执行此操作并分配给pstm。我必须对每个文本字段执行此代码。。!!难道没有任何紧凑的方法来做到这一点!!如果所有字段都是字符串,则使用for-loop。有一个函数getSelectedText。如果textField为空,则返回null。。!!它基本上解决了我的问题。对于你的回答,它真的很有帮助。。!!我是一名java爱好者…如果你想编辑上面的代码,那将非常有用?String text=t1.getText();text=”“.equals(文本)?空:文本;pstm.设置字符串(1,文本)///对所有其他字段执行此操作并分配给pstm。我必须对每个文本字段执行此代码。。!!难道没有任何紧凑的方法来做到这一点!!如果所有字段都是字符串,则使用for-loop。有一个函数getSelectedText。如果textField为空,则返回null。。!!它基本上解决了我的问题。对于你的回答,它真的很有帮助。。!!我必须为每个文本字段编写代码。。!!难道没有任何紧凑的方法来做到这一点!!我必须为每个文本字段编写代码。。!!难道没有任何紧凑的方法来做到这一点!!