Я использую JDBC, необходимо постоянно проверять базу данных на изменение значений.проверка базы данных бесконечного цикла
То, что у меня есть, - это бесконечный цикл, внутренний цикл итерации по изменяющимся значениям и каждая проверка итерации по базе данных.
public void runInBG() { //this method called from another thread
while(true) {
while(els.hasElements()) {
Test el = (Test)els.next();
String sql = "SELECT * FROM Test WHERE id = '" + el.getId() + "'";
Record r = db.getTestRecord(sql);//this function makes connection, executeQuery etc...and return Record object with values
if(r != null) {
//do something
}
}
}
}
Я думаю, что это не лучший способ.
Другим способом, я думаю, является обратное, чтобы продолжать выполнять итерацию по базе данных.
UPDATE
Спасибо за обратную связь по поводу таймеров, но я не думаю, что это будет решить мою проблему. После того как изменения произойдут в базе данных, мне нужно обработать результаты почти мгновенно против меняющихся значений («els» из кода примера).
Даже если база данных не изменяется, она все равно должна постоянно проверять изменение значений.
UPDATE 2
OK, чтобы кто заинтересован в ответ я считаю, у меня есть решение прямо сейчас. В основном решение НЕ использовать базу данных для этого. Загружайте, обновляйте, добавляйте и т. Д. Только то, что нужно от базы данных к памяти. Таким образом, вам не нужно постоянно открывать и закрывать базу данных, вы имеете дело только с базой данных, когда вы вносите в нее изменения, и отражаете эти изменения в памяти и занимаетесь только тем, что находится в памяти в то время. Уверен, что это более интенсивный объем памяти, но производительность здесь является абсолютным ключом.
Что касается периодических ответов «таймер», извините, но это совсем не так. Никто не ответил по какой-то причине, как использование таймеров решит эту конкретную ситуацию.
Но еще раз спасибо за отзыв, но все же было полезно.
(+1) Хороший вопрос ... единственный способ, которым я вижу это, - добавить какой-то триггер на стороне базы данных. Мне тоже это не нравится, потому что он не находится под контролем программы и может быть слишком специфичным. –
ли ваши обновления управления приложениями и вставки также? – Peeyush
yes Peeyush. Я написал классы для обработки всего взаимодействия с базой данных. – 2013-05-14 06:18:18