nested exception is java.sql.SQLException: Ungültiger parameter index 1
Bekomme ich folgenden Fehler, aber ich kann nicht verstehen, warum:
org.springframework.jdbc.BadSqlGrammarException:
PreparedStatementCallback; schlechte SQL-Grammatik [UPDATE da_tracking SET
ins_name= xyz, ins_dev_scripted = False WO ins_ID = 12]; geschachtelte
Ausnahme ist java.sql.SQLException: Ungültiger parameter index 1.
------------------------ dao class-----
public int save(DboBean record) {
//TODO Auto-generated method stub
String sql = "UPDATE da_tracking"
+ " SET ins_name= " + record.getDboDevName()+ ","
+ " ins_dev_scripted = " + record.getDevScripted()
+ " WHERE ins_ID = " + record.getDboId();
Object[] params = new Object[] {record.getDboDevName(), record.getDevScripted()};
int[] types = new int[]{Types.VARCHAR, Types.BIT};
return jdbcTemplate.update(sql, params, types);
}
----------------------------Junit-----
bean.setDboDevName("xyz");
bean.setDboId(12);
int rowsAffected = objDao.save(bean);
System.out.println("Object is updated [" + bean.getDboId() + ", " + bean.getDboDevName() +
", " + bean.getDevScripted() + "]");
Weißt du auch warum??
Mein delete & read-Methoden arbeiten.
InformationsquelleAutor user1631032 | 2012-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Fehler, den Sie sehen, ist, weil Sie auf der Durchreise sind Variablen in der
params
undtypes
arrays, aber Sie haben nicht setzen Platzhalter für diejenigen, die bind-Variablen in Abfragen:Intern, der Frühling ist sowas:
NIE sollten Sie SQL-Abfragen erstellen, die durch verketten von externen Daten. Im besten Fall wird es dazu führen, dass Abfragen, die nach dem Zufallsprinzip fehlschlagen, wenn jemand legt ein seltsames Angebot oder escape-Zeichen in den Daten und im schlimmsten Fall, eine große Sicherheitslücke, die die Sicherheit Ihres Systems.
InformationsquelleAutor Adam Batkin
Funktioniert das?
ins_name
) muss zitiert werden, aber der SQL-parser noch nicht bekommen, die weit in das Parsen der Abfrage noch.Aktualisiert den code. Überprüfen Sie jetzt.
Ja, es funktioniert 😀 Thx
Toll. 🙂 Kannst du bitte upvote und/oder markieren Sie es als Antwort? Danke.
InformationsquelleAutor Garbage