2017-02-07 1 views
0

Ich bin Neuling auf Frühling zu arbeiten, und jetzt habe ich eine Abfrage, aber nicht sicher, wie jdbcTemplate zu verwenden, daran zu arbeiten, ist die Abfrage wie folgt:Wie kann ein jdbcTemplate Update-Anweisung ausführen und das Rück variable

UPDATE-Tabellensatz Seq = @ Seq: = Seq + 1 WHERE ID =?; WÄHLEN Sie @seq als total aus;

Ich versuche, jdbcTemplate.executeQuery zu verwenden, aber es wird Fehler angezeigt: Kann keine Datenmanipulationsanweisungen mit executeQuery() ausgeben.

Ich versuche jdbcTemplate.executeUpdate zu verwenden, aber es scheint nur betroffene Zeile

zurückkehren Ist da jemand weiß, wie ich diese Abfrage erreichen kann und gibt den aktualisierten Wert?

Antwort

0

sollten Sie in der Lage sein, die UPDATE Anweisung auszuführen ersten update mit und führen Sie dann die SELECT Anweisung queryForObject verwenden. Die Variable wird über die Sitzung hinweg beibehalten, die an dieselbe Verbindung gebunden ist.

jdbcTemplate.update("UPDATE table set Seq = @seq := Seq + 1 WHERE id= ?", yourId); 
int total = jdbcTemplate.queryForObject("SELECT @seq as total", Integer.class); 
+0

Ich habe Ihren Code versucht und das Ergebnis für die Summe ist Nullwert. Das Ziel dieser Abfrage möchte einen Zähler erhöhen und einen neuen Zählerwert innerhalb derselben Abfrage an das Programm zurückgeben. und wünschen, dass, wenn mehrere Verbindungen gleichzeitig hergestellt werden, die Abfrage einen rechten Zähler zurückgeben kann – ahyan

Verwandte Themen