Существуют ли какие-либо платформы для обработки запросов к базе данных в приложениях swing?
-
02-07-2019 - |
Вопрос
Я полагаю, что любой программист, который имел дело с запросами к базе данных в приложении с графическим интерфейсом, сталкивался с некоторыми или всеми из следующих проблем:
- Ваш графический интерфейс зависает, потому что вы называете слой базы данных в случае диспетчеризируют поток
- Когда у вас есть несколько окон / панелей / jframes, где пользователь может запустить запрос к БД, ваша производительность снижается, потому что у вас нет никакого контроля над потоками, которые создает ваш пользователь
- Пользователь может заблокировать приложение и даже базу данных, потому что он вызывает какое-либо действие много раз, прежде чем первое действие будет завершено
О чем я хотел бы знать:существуют ли какие-либо фреймворки, которые удовлетворяют требованиям обработки упорядоченного набора длительных действий (включая, но не ограничиваясь ими, вызовы базы данных, т.е.вычисления) вне потока отправки событий?
Примечание:Я знаю о SwingWorker ;-)
Решение
Такую вещь следует найти, например, в Netbeans.Смотрите раздел RequestProcessor.Но в более простых случаях этого не требуется.В прошлый раз, когда мне понадобилось что-то вроде планирования потоков и управления ими, я просто использовал новые пакеты параллелизма, включенные в J5 (я использовал J6).С помощью его ExecutorFactory-ов вы можете просто получить базовый контроль над задачами.Вы также можете использовать некоторые очереди. Этот PDF-файл может помочь.PDF-файл написан на словацком языке, но отдельные / множественные рабочие задачи там написаны на Java ;)
Другие советы
Голые объекты облегчают создание чистой модели предметной области, и у них также есть уровень отображения GUI 2 DB -- http://www.nakedobjects.org/home/index.shtml
Я сомневаюсь, что вы найдете что-то конкретное для запросов к базе данных.Вы можете попробовать повторно использовать существующие универсальные библиотеки планирования задач.Примером может служить Eclipse jobs API.Это не зависит от среды разработки.
Видишь http://www.eclipse.org/articles/Article-Concurrency/jobs-api.html