powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Синхронизация записи в БД
12 сообщений из 12, страница 1 из 1
Синхронизация записи в БД
    #38937262
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Хочу спросить совета.
Нужно синхронизировать запись в БД.
В то время пока я роботаю с изменяемыми таблицами, то никакой другой поток не должен их тоже изменять.

Я вижу такие варианты
1)Singleton клас. И метод который пишет в БД сделать synchronized
2) Зделать через java.util.concurrent.Executors
3) Синхронизировать на уровне БД (sql isolation level) (не знаю можно ли поставить синхронизацию на несколько SQL запросов к разным таблицам)
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937282
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis111111,
транзакции знаешь для чего служат?
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937295
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

Тоб-то можно поставить уровень изоляции транзакции SERIALIZABLE, начать делать SQL запросы и все?
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937301
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis111111вадя,

Тоб-то можно поставить уровень изоляции транзакции SERIALIZABLE, начать делать SQL запросы и все?
Для начала нужно иметь понимание что менее строгие уровни изоляции вам почему-то не подходят.

Есть куча разных способов решить проблему. Но с начала нужно определится с тем действительно ли есть смысл синхронизировать доступ на уровне БД, а не на уровне Java.

Постановка проблемы у вас слишком размытая, поэтому не понятно нужна ли тут пессимистичная блокировка SELECT FOR UPDATE или достаточно обычной транзакционности.
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937317
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis111111В то время пока я роботаю с изменяемыми таблицами, то никакой другой поток не должен их тоже изменять.
ты же не один.
Это идёт вразрез с назначением БД как Многопользовательской.
И веб тоже т.к. блокировки.
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937346
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Ну вот например есть таблица где записи не должны дублироватся ( есть уникальной ключ для каждой записи)
Приходит партия записей для импорта в БД.
Я создаю временную таблицу.
Пишу новие записи в нее.
Через join узнаю каких запсисей нет в системе и пишу их БД.
Также мне нужен список дублей что потом отфильтровать остальние сущности для записи в БД
Мне кажется тут и нужна синхронизация

Можно поставить на ключевое поле что оно уникальное, но тогда если записи будут дублироватся запрос просто не исполнится...
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937351
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis111111Можно поставить на ключевое поле что оно уникальное, но тогда если записи будут дублироватся запрос просто не исполнится...
В зависимости от базы данных можно использовать запросы которые
1) Будут игнорировать ошибку уникального констрейнта и просто пропускать запросы приводящие к ошибке
2) Проверять наличие ключа в таблице перед вставкой записи
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937358
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и для начала надо указать базу, чтоб ответы были более полными
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937377
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяи для начала надо указать базу, чтоб ответы были более полными
MySQL 5.6
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937378
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937385
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для "большей защищённости" от "параллельных обращени" можно испльзовать транзакции в хранимых процедурах
...
Рейтинг: 0 / 0
Синхронизация записи в БД
    #38937403
denis111111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, спасибо всем за ответы! Буду обдумывать все это...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Синхронизация записи в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]