powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Добавление данных в БД
8 сообщений из 8, страница 1 из 1
Добавление данных в БД
    #39097570
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Сервлете в методе doPost читаю строку из файла . Данные заношу в объект (сеттарами) и вызываю метод DAO, чтобы занести строку в БД. (Т.е. если 10 строк = 10 преобразований в объекты , 10 запросов в БД INSERT INTO Products VALUES(null,?,?,?,?,?) ) .

1)Можно ли все объекты занести в коллекцию, и одним запросом в БД добавить все строки ?

2) Как сделать синхронизацию , чтобы пока один пользователь добавляет , второй не мог вклиниться в этот момент ? По идее же в сервлет контейнере запросы выполняются в отдельных потоках.
...
Рейтинг: 0 / 0
Добавление данных в БД
    #39097595
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawkПо идее же
дак я не понял. У тебя теория или ты писал Hello World JSP?
И откуда взял, что нужно писать insert into?
...
Рейтинг: 0 / 0
Добавление данных в БД
    #39097613
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123goldenhawkПо идее же
дак я не понял. У тебя теория или ты писал Hello World JSP?
И откуда взял, что нужно писать insert into?
Делаю через JDBC и PreparedStatement
...
Рейтинг: 0 / 0
Добавление данных в БД
    #39097647
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawkPetro123пропущено...

дак я не понял. У тебя теория или ты писал Hello World JSP?
И откуда взял, что нужно писать insert into?
Делаю через JDBC и PreparedStatement
ну и плюнь.
10 строк вставил, Будет 10 insert.
Если у тебя импорт накладных сразу пачкой, тогда можно пошаманить.
...
Рейтинг: 0 / 0
Добавление данных в БД
    #39097649
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawk2) Как сделать синхронизацию , чтобы пока один пользователь добавляет , второй не мог вклиниться в этот момент ? По идее же в сервлет контейнере запросы выполняются в отдельных потоках.
пусть 100 одновременно делают инсерт. Зачем ограничивать?
Сначала придумай зачем, а потом будешь им мешать.
...
Рейтинг: 0 / 0
Добавление данных в БД
    #39097650
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть очень просто смысл для упорядочивания вставок на уровне сервиса - меньшая конкуренция в базе.
Нет смысла запрещать "перемешивание" вставок от разных пользователей, но вот организовать очередь из которой только один поток будет выгребать значения для вставок - очень даже оправдано.
...
Рейтинг: 0 / 0
Добавление данных в БД
    #39097664
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawkВ Сервлете в методе doPost читаю строку из файла . Данные заношу в объект (сеттарами) и вызываю метод DAO, чтобы занести строку в БД. (Т.е. если 10 строк = 10 преобразований в объекты , 10 запросов в БД INSERT INTO Products VALUES(null,?,?,?,?,?) ) .

1)Можно ли все объекты занести в коллекцию, и одним запросом в БД добавить все строки ?

2) Как сделать синхронизацию , чтобы пока один пользователь добавляет , второй не мог вклиниться в этот момент ? По идее же в сервлет контейнере запросы выполняются в отдельных потоках.
надо смотреть не на java на саму базу, напрмер в mysql такое возможно.
и какие проблемы по п.2?
...
Рейтинг: 0 / 0
Добавление данных в БД
    #39097824
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawkМожно ли все объекты занести в коллекцию, и одним запросом в БД добавить все строки ?

Можно, но в данном случае не нужно. Для добавления кучкой есть методы Statement.addBatch и PreparedStatement.addBatch с последующим executeBatch. Они ускоряют выполнение SQL-операторов, но это имеет значение, только если вставок объектов много, чего нет, поскольку они добавляются вручную. Однако если пользователь делает несколько изменений в базе, то может оказаться желательным, чтобы изменения были согласованными, то делались все или при ошибке отменялись все. Для этого применяются транзакции базы данных (операторы commit и rollback), а в JDBC это выражается как Connection.setAutoCommit (false), затем произвести все вставки, затем connection.commit() для подтверждения изменений или connextion.rollback() для их отмены при какой-нибудь ошибке (часто в блоке уловления исключения).

goldenhawkКак сделать синхронизацию , чтобы пока один пользователь добавляет , второй не мог вклиниться в этот момент ? По идее же в сервлет контейнере запросы выполняются в отдельных потоках.

Сначала понять, нужна ли она. Бывает по-разному.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Добавление данных в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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