2016-05-22 5 views
0

私は、inventorydbという名前のphpmyadminで作成されたデータベースを持っています。Javaで非null制約を削除するには?

私の質問は、not nullの列を削除する方法です。私はすでにそれをphpMyAdminのnot nullに設定しています。ここに私のコーディングがあります。

("DELETE FROM inventorydb WHERE item_id= ('"+jTextField19.getText()+"') AND item_id IS NOT NULL"); 

私はjava netbeansを使用しています。フィールドが空白のときにポップアップするエラーが欲しい、btw item_idが私の主キーです。申し訳ありませんが、私はこのすべてにおいて全く新しいです。

+0

問題とは関係ありませんが、SQLクエリではPreparedStatementsを使用してください。文字列を連結するSQLクエリを構築することはかなり安全です。 – Oliveira

答えて

0

プライマリキー3つのプロパティは

i) Not Null 
ii) Unique 
iii) auto-indexing 

だからあなたitem_idは空にすることはできません。 の値を定義する必要があります。あなたがそれにnullをチェックし、その後jTextField19.getText()文字列の値とを置くことができる

int rowsDeleted = DELETE FROM inventorydb WHERE item_id= ('"+jTextField19.getText()+"'); 
if (rowsDeleted > 0) { 
    // give success message using JOptionPane 
    System.out.println("A user was deleted successfully!"); 
} else { 
// give error message 
} 
+0

私はこの方法で試してみましたが、idをキー入力せずにdeleteキーを押しても、エラーなしで実行されます。 –

+0

@HafizKhairulあなたのテキストフィールド 'jTextField19'に値を入れましたか?正確な値を指定すると、それは削除されます。私はあなたの心配についてはっきりしていません。あなたは私を明らかにするでしょうか? – SkyWalker

+0

はい、私は正しく削除が動作しますが、私が知りたいのは、ユーザーがjTextField19フィールドを空白のままにしたり、データベースに見つからない値を入力したときにエラーを設定する方法です。 –

0

:次に、あなたのクエリは以下のように見えるだろう。

String value = jTextField19.getText(); 
if (value == null || "".equals(value)) { 
    // Write your popup code here 
} 

あなたの削除クエリは、あなたのロジックの一部として、またはあなたのロジックごとに表示されます。

DELETE FROM inventorydb WHERE item_id= ('"+jTextField19.getText()+"'); 

nullチェックを余分にする必要はありません。

+0

ありがとう、この作業は問題ありませんが、ユーザーがデータベースにないID入力を入力してエラーがポップアップしたい場合はどうすればよいですか? –

関連する問題