Автоматически обновлять записи в таблице базы данных sql на основе значений другой таблицы.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Автоматически обновлять записи в таблице базы данных sql на основе значений другой таблицы.

Сообщение Anonymous »

есть такая штука, когда программа должна автоматически изменять значение столбца элемента в таблице на основе его идентификатора типа. В основном
-Таблица расписания технического обслуживания содержит идентификатор типа и количество дней.
-Таблица элементов содержит идентификатор элемента, идентификатор типа и идентификатор состояния.
Если идентификатор типа записи таблицы элементов имеет соответствующий идентификатор типа в таблице MS, идентификатор состояния меняется (например, с 1 [активный] на 2 [неактивный]) каждый раз [No. Дней] дней. Большая проблема, с которой я столкнулся, заключается в том, что в таблице элементов содержится около 10 тысяч записей, и я понятия не имею, выйдет ли из строя мой компьютер или нет, если я запущу его. У вас есть идеи по оптимизации?
import java.util.ArrayList;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ScheduleMaintenance {
private ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
private ArrayList itemsList;
private ArrayList maintSched;

public void startScheduler() {
// Retrieve the lists from SharedData
itemsList = SharedData.getInstance().getItemsList();
maintStat = SharedData.getInstance().getMaintStat();
maintSched = SharedData.getInstance().getMaintSched();
int delay = 0;

// Loop through itemsList to find matches in maintSched
for (Item item : itemsList) {

// Loop through maintSched to check for matching typeID
for (Item schedItem : maintSched) {
if (item.getItemTID() == schedItem.getItemTID()) {
delay = 10;
break;
} else if (item.expiration != null){
delay = 20
break;
}
}

if (delay > 0) {
scheduler.schedule(() -> performMaintenance(item), delay, TimeUnit.DAYS);
}
}

}

public void stopScheduler() {
scheduler.shutdown();
try {
if (!scheduler.awaitTermination(60, TimeUnit.SECONDS)) {
scheduler.shutdownNow();
}
} catch (InterruptedException e) {
scheduler.shutdownNow();
}
}

private void performMaintenance(Item item) {
// SQL Update here, for now, just printing
System.out.println("Performing maintenance on item with ID: " + item.getItemID() + " and typeID: " + item.getItemTID());
}
}



Подробнее здесь: https://stackoverflow.com/questions/791 ... ues-of-ano
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»