Итак, у меня проблемы с моей программой. По сути, эта программа похожа на чат на базе MySQL. Он хранит сообщения в базе данных и читает их. У меня проблемы с чтением. То, что он делает сейчас, это когда-либо 5 секунд перечитывает все сообщения в базе данных. Я пытался заставить его читать только новые сообщения, но это не очень хорошо работает. Это мой код:
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();
}
}
Я не уверен, как сделать это эффективным. Это занимает слишком много времени, чтобы выполнить это. Если идентификатор равен 23, я даже не вижу сообщений, потому что это занимает больше 5 секунд. Я добавил
if (lastLine < res.getInt("id"))
и
lastLine = res.getInt("id");
в моих попытках заставить его читать только новые сообщения, но это не сработало так, как ожидалось. Я думаю, что он все еще выполняется построчно, просто не отображается в чате. Должен быть более легкий путь.
РЕДАКТИРОВАТЬ: Хорошо, поэтому я исправил проблему с невидимым сообщением (я забыл удалить часть кода, которая очищала чат каждые 5 секунд). Но отправка сообщений все еще занимает много времени, около 3-4 секунд?