2016-05-22 5 views
0

Ich habe eine Datenbank erstellt in phpmyadmin namens Inventar und eine Tabelle namens namens inventorydb.So löschen Sie Nicht-Null-Constraint in Java?

Meine Frage ist, wie lösche ich not null Spalten. Die Sache ist, dass ich es bereits auf not null in phpMyAdmin gesetzt habe. Hier ist meine Codierung.

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

Ich benutze Java Netbeans. Ich möchte, dass ein Fehler auftritt, wenn das Feld leer ist, btw item_id ist mein Primärschlüssel. Tut mir leid, ich bin ziemlich neu in all dem.

+0

Nicht im Zusammenhang mit Ihrem Problem, aber bitte PreparedStatements für SQL-Abfragen verwenden. Es ist ziemlich unsicher, SQL-Abfragen zu erstellen, die Zeichenfolgen verketten. – Oliveira

Antwort

0

Primärschlüssel 3 Eigenschaften

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

So Ihre item_id darf nicht leer sein. Sie müssen Werte definieren. Dann wird Ihre Abfrage wie folgt aussehen werden:

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

Ich habe es auf diese Weise versucht, aber immer noch, wenn ich delete ohne ID gedrückt, es läuft immer noch ohne Fehler. –

+0

@HafizKhairul Haben Sie Wert in Ihr Textfeld 'jTextField19' gesetzt? Wenn Sie den genauen Wert angeben, wird er gelöscht. Ich bin mir über Ihre Bedenken nicht im Klaren. Würdest du bitte mich erklären? – SkyWalker

+0

ja es tut, ich bekomme das Löschen funktioniert ordnungsgemäß, aber was ich wissen will, ist, wie ein Fehler gesetzt, wenn der Benutzer das jTextField19 Feld leer gelassen oder füllen Sie es mit einem Wert, der nicht in der Datenbank gefunden wird. –

0

Sie können jTextField19.getText() Wert in String und dann NULL-Prüfung auf sich.

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

Dann Ihre Abfrage löschen kann in anderen Teil oder nach Ihrer Logik kommen.

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

Keine Notwendigkeit, zusätzliche zu setzen ist null überprüfen.

+0

Vielen Dank Mann, das funktioniert gut, aber was ist, wenn der Benutzer eine ID-Eingabe eingeben, die nicht in der Datenbank ist und ich möchte einen Fehler auftauchen? –