1

Javaで簡単なサインアップフォームを作成しようとしています。null値を許可しないように選択したSQLでテーブルを作成しましたが、値を入力せずにサインアップしても例外は与えられません....すべてのnull値が除外されています..!! 私は何をすべきか?

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());
    }

}                                   
4

3 に答える 3

1

Nullempty同じではありません。列の値を次のように設定すると、not null何も挿入できないかnull、値を入力する必要があります。しかし、それは空の文字列を入力できないという意味ではありません..

null と空の文字列の例

String s = null;
String s = "";

したがって、あなたの場合、TextBoxに入力を挿入せず、getText()それを使用して値を取得すると、nullではない空の文字列が返されます。私はあなたが違いを理解したと思います

したがって、例外を設けるためにできることは 1 つです。長さが 0 の場合は入力文字列を確認してから挿入しないか、そこに null 値を挿入します

String s = t1.getText();
if(s.length() == 0)
    pstmt.setString(1, null);  // or dont insert
于 2013-06-22T06:07:14.270 に答える
0

t1.getText()null ではない空の値を返し""ます。そのためには、次のような空の値を確認する必要があります

"".equals(t1.getText())
于 2013-06-22T06:10:46.630 に答える
0

実際、getText() メソッドは決して null を返しません。内容が空の可能性がある CharSequence を返します。

getText().toString().equals("") またはその逆を実行する代わりに、getText().length() == 0 を実行した方が速い場合があります。

于 2013-06-22T06:16:37.007 に答える