2016-08-11 4 views
0

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

+1

Haben Sie auf Ihrer Verbindung festgeschrieben? Wenn Auto-Commit nicht aktiviert ist, könnte dies ein Grund sein. –

+1

Wie gehen Sie mit Transaktionen um? Machst du explizit ein Commit oder hast du automatische Commits aktiviert? – Jesper

+0

Was ist die Art der Abmeldung? –

Antwort

1

Ich denke, U folgen ändern können: preparedStatement.executeUpdate();

+0

Danke Freund, das hat funktioniert :) – user3872094

+0

Du bist willkommen Freund – PONRAJ

Verwandte Themen