Ich habe die folgende Abfrage in meinem SQLServer.Wie führe ich eine Abfrage in JDBC
update time_tracker
set logout = '08-11-2016 17:28:02', totaltime = DATEDIFF(minute,login, logout)
from Time_Tracker
where userid = 0138039 AND CONVERT(Date, LOGIN) = CONVERT(Date, GETDATE())
Und in meinem JDBC nehme ich die folgende Abfrage
Date endDate = new Date();
DateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss");
String logoutTime = dateFormat.format(endDate);
System.out.println(logoutTime);
String sql =
"update time_tracker " +
"set logout = ?, totaltime = DATEDIFF(minute,login, logout) " +
"from Time_Tracker " +
"where userid= ? AND CONVERT(Date, LOGIN) = CONVERT(Date, GETDATE())";
preparedStatement = conn.prepareStatement(sql);
preparedStatement.setString(1, logoutTime);
preparedStatement.setString(2, userId);
preparedStatement.execute();
preparedStatement.close();
Als ich dieses Programm ausführen, gibt es kein Update in meinem Backend getan, aber wenn ich laufe die Abfrage direkt in meinem SQL Server, es funktioniert gut. Bitte lassen Sie mich wissen, wo ich falsch liege und wie ich es beheben kann.
Dank
Haben Sie auf Ihrer Verbindung festgeschrieben? Wenn Auto-Commit nicht aktiviert ist, könnte dies ein Grund sein. –
Wie gehen Sie mit Transaktionen um? Machst du explizit ein Commit oder hast du automatische Commits aktiviert? – Jesper
Was ist die Art der Abmeldung? –