2017-10-10 2 views
-1
String query="insert into employee values('"+e.getId()+",'"+e.getName()+"',"+e.getSalary()+")"; 

Was ist falsch mit diesem Code.Error -String Literale sind nicht ordnungsgemäß durch doppelte Anführungszeichen geschlossen; Siedoppelte Anführungszeichen nicht richtig geschlossen

String query="insert into employee values('"+e.getId()+"','"+e.getName()+"','"+e.getSalary()+"')"; 

nämlich das Schließen eines auf e.getId() und beide auf e.getSalary()

+6

Drucken Sie Ihre Abfrage und Sie sollten 'Einfügen in Mitarbeiterwerte ('someid,' somename ', somesalary)' - dann werfen Sie einen Blick auf '' someid'. – Thomas

+0

@thomas guten Platz! Es schließt die ID nicht richtig, sollte aussehen wie '' "... + e.getId() + '', '" ... 'beachte das' '' am Ende vor '' –

Antwort

0

Ein Zitat für das ID-Feld

String query="insert into employee values('"+e.getId()+"','"+e.getName()+"',"+e.getSalary()+")"; 
0

Sie verpassen ein paar Zitate fehlt habe nur ein einziges Angebot für ID. Entfernen Sie es (ID klingt numerisch) oder fügen Sie ein schließendes entsprechend hinzu.

Noch besser, verwenden Sie PreparedStatement und stellen Sie die Parameter mit den entsprechenden Methoden ein, um das gesamte Quotement-Thema zu vermeiden und SQL-Injection-Angriffe zu verhindern.

+0

Gehalt könnte numerisch sein – Lothar

+0

@ Lothar ist wahr, aber normalerweise würde ich mir vorstellen, eine bessere Chance zu haben, also nahm ich an, dass der OP das auch verpasst hat. – notyou

Verwandte Themen