Java-MySQL erhalten, Letzte Zeile

Also ich hab Probleme mit meinem Programm. Im Grunde so weit das Programm ist wie eine MySQL-basierten chat. Es speichert die Nachrichten in der Datenbank und liest Sie. Ich habe Probleme mit dem Lesen. Was es jetzt ist immer 5 Sekunden re-Lesen Sie alle Nachrichten in der Datenbank. Ich habe versucht, es zu machen, Lesen Sie nur die neuen Nachrichten, aber das funktioniert nicht so gut. Das ist mein code:

public static void readChat()
{
    try
    {
        MySQL.sqlConnect();
        try
        {
            Statement st = con.createStatement();
            ResultSet res = st.executeQuery("SELECT * FROM  table1");
            while (res.next())
            {
                if (lastLine < res.getInt("id"))
                {
                    String message = res.getString("message");
                    Gui.out.append(message + "\n");
                    lastLine = res.getInt("id");
                }
            }
        }
        catch (SQLException s)
        {   
            System.out.println("SQL code does not execute.");
        }
        MySQL.sqlDisconnect();
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}

Ich bin nicht sicher, wie man diese effizient. Es dauert viel zu lange, um es auszuführen. Wenn die id 23 kann ich auch nicht sehen, die Meldungen erscheinen, weil es länger dauert als 5 Sekunden. Ich fügte hinzu, die

if (lastLine < res.getInt("id"))

und

lastLine = res.getInt("id");

in meinem bemühen, es zu machen, Lesen Sie nur die neuen Nachrichten, aber es hat nicht funktioniert wie erwartet. Ich denke, dass es noch ausgeführte Zeile um Zeile, nur nicht in den chat. Es muss doch einen einfacheren Weg.

EDIT: Okay, habe das problem behoben mit dem nicht-sehen-Nachrichten, (ich vergessen zu entfernen, die Teil von dem code, der gelöscht der chat alle 5 Sekunden). Aber es dauert noch eine lange Zeit, um Nachrichten zu senden, etwa 3-4 Sekunden?

InformationsquelleAutor Cody | 2011-10-25
Schreibe einen Kommentar