Параллельный доступ с использованием JDBC в Java - PullRequest
0 голосов
/ 04 июля 2011

Я разрабатываю Java-приложение для настольного компьютера с использованием JDBC, и я хотел управлять одновременным доступом к базе данных. Кто-то сказал мне использовать сеансы, но после некоторого исследования выяснилось, что сеансы невозможны в настольном приложении.

Вот почему я прошу помощи. У вас есть идеи, как управлять этой вещью.

Спасибо

Ответы [ 3 ]

4 голосов
/ 04 июля 2011

Исходя из того, что вы описали, я рекомендую вам проверять наличие исключений SQL при попытке вставить или обновить строку, которая может быть уже кем-то изменена.В этом случае, возможно, вам следует перезагрузить то, что ваше приложение показывает пользователю, чтобы у него были свежие данные.Другой вариант - показать удобную ошибку.

Если ваше приложение выполняет несколько запросов (вставка, обновление) подряд, я предлагаю использовать транзакции.Я думаю, что самый простой способ установить их в настольном приложении - это использовать среду Spring, если вы с ней знакомы.

2 голосов
/ 04 июля 2011

Непонятно, что именно вы подразумеваете под управлением одновременным доступом - хотите ли вы избежать нескольких запросов на выборку к БД?В этом случае использование SELECT для ОБНОВЛЕНИЯ может быть вариантом.Если вы ищете более общий способ ограничения доступа к БД только для одного пользователя в любое время, вам придется включить собственный механизм блокировки в код, который я полагаю.

1 голос
/ 04 июля 2011

Пока каждый Поток использует свое Соединение, в JDBC не должно быть проблем с параллелизмом. Есть несколько способов добиться этого. например ThreadLocal или пул соединений.

Я не понимаю, как многие пользователи могут получить доступ к одному настольному приложению. У вас может быть много копий настольного приложения, и у каждого пользователя есть свои собственные подключения. Это не должно вызывать проблем. Вы должны уточнить, что вас беспокоит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...