MySQL - Dtanebank - Update



  • Hallo, ich habe eine Datenbank, in welche ich Start und Endzeit von Programmen hineinschreibe.
    Wenn ein Programm gestartet wird, ist der wert von ende NULL.
    Bis nun wird beim Beenden eines Programmes ein neuer DB-Eintrag erzeugt

    String sql_command = "INSERT INTO report(start, ende, nutzergruppe,hostname, domainname, programmname)" +
    							 " values(?,?,?,?,?,?);";
    		Connection connection = null;
    
    		try
    		{
    			Class.forName("com.mysql.jdbc.Driver");
    			connection = DriverManager.getConnection(sql_url, sql_user, sql_password);
    		}
    		if(connection != null)
    		{
    			try
    			{
    				java.sql.PreparedStatement statement = connection.prepareStatement(sql_command);
    				statement.setTimestamp(1, new java.sql.Timestamp(System.currentTimeMillis()));
    
    				statement.setString(3, groupid);
    				statement.setString(4, hostname);
    				statement.setString(5, domainname);
    				statement.setString(6, program);
    
    				if(!trigger)
    				{
    					statement.setTimestamp(2,new java.sql.Timestamp(System.currentTimeMillis()));
    
    				}
    				else
    				{
    					statement.setTimestamp(2, null);
    				}
    
                    statement.executeUpdate();
    				connection.close();
    			}
    

    Nun möchte ich aber nicht mehr dass ich "doppelte" Informationen speichere.
    Ich möchte nun statt eines neuen Eintrages ein UPDATE vornehmen.

    Also in der Art "UPDATE report SET ende = new Timestamp() WHERE user = String user ... "

    Mein Problem ist dass ich nicht genau weiß wie ich die JavaStrings einbringen kann.

    Ich hätte genr etwas wie
    [code]
    String s = new String("UPDATE report SET ende = ? WHERE user = %s AND start = %t", user , start);
    statement.execute(s)
    [code]
    leider hab ich keinen blassen Schimmer wie ein solcher Befehl aussehen müsste.
    Vor allem dass ich es auch mit TimeStamps (in der DB als DATETIME verwirklicht) zu tun habe erschwert mir alles ungemein.
    Gibts es für UPDATE auch so etwas wie (?,?,?,?), wo ich anschließend etwas wiestatement.setTimestamp(1, new java.sql.Timestamp(System.currentTimeMillis())); einsetzen könnte?
    Java ist auch eine Insel hilft mir hier leider nicht weiter ...

    Würde jmd mir bitte einen Lösungsvorschlag geben?



  • Benutzt du doch oben schon?!? PreparedStatement... oder verstehe ich die Frage jetzt nicht?

    mfg
    xXx


Log in to reply