2017-11-21 2 views
-1

Ich versuche, in eine Tabelle mit dem Namen Dienste eingeben, und es hat eine ID, service_name und service_type. Ich erhalte einen Fehler, wenn ich versuche, es auszuführen.Kann nicht in eine Datenbank mit vorbereiteten Anweisungen eingefügt werden

public void insertService(String service, String serviceType) { 

    try { 
     st = myConn.createStatement(); 
     String query = "INSERT INTO services" 
         +"(service_name, service_type)" 
         +"values(?,?)"; 
     PreparedStatement preparedStmt = myConn.prepareStatement(query); 
     preparedStmt.setString(1, service); 
     preparedStmt.setString(2, serviceType); 

     st.executeUpdate(query); 
    } catch(Exception e) { 
     System.out.println("Cannot Add service" + e); 
    } 

} 
+1

Es gibt keine Notwendigkeit an allen Fehler-/Ausnahmemeldung für die Buchung. – lad2025

+0

Warum ist dieser Junge? Welche Art von Anweisungen sollte ich die Ausnahme haben –

+2

'Ich erhalte einen Fehler, wenn ich versuche, es auszuführen. 'Vielleicht ein Hinweis, welche Art von Fehler erhalten Sie? Wie "Id-Wert kann nicht null sein"? – lad2025

Antwort

1

myConn scheint nicht definiert zu sein.

Connection myConn = DriverManager.getConnection(url,user, password); 

EDIT 1

Vielleicht, weil Sie ohne die Werte der Abfrage sind ausführen?

st.executeUpdate(query); gegen preparedStmt.executeUpdate()

EDIT 2

myConn erscheint nicht definiert werden.

Connection myConn = DriverManager.getConnection(url,user, password);

dieses Bit ignorieren. Die Antwort war in der ersten Bearbeitung.

+0

Entschuldigung, myConnis im Konstruktor definiert –

0

Ihnen fehlen an mehreren Stellen Leerzeichen in Ihrer Abfrage. Versuchen:

String query = "INSERT INTO services " 
         +"(service_name, service_type) " 
         +"values(?,?)"; 

Es ist immer Ihre Abfrage manuell empfohlen zu laufen, bevor es in Ihrem Code setzen, um sicherzustellen, es syntaktisch korrekt/gültig ist.

0

Wie Sie erwähnten, ist der Fehler MySQLSyntaxErrorException. Sie sollten Ihre SQL-Abfrage generiert werden.

Verwenden Sie die folgende Abfrage

String query = "INSERT INTO services " 
         +"(service_name, service_type) " 
         +"values(?,?)"; 

Einen Raum vor doppelten Anführungszeichen jeder Zeile

Verwandte Themen