|
|
|
Добавление данных в БД
|
|||
|---|---|---|---|
|
#18+
В Сервлете в методе doPost читаю строку из файла . Данные заношу в объект (сеттарами) и вызываю метод DAO, чтобы занести строку в БД. (Т.е. если 10 строк = 10 преобразований в объекты , 10 запросов в БД INSERT INTO Products VALUES(null,?,?,?,?,?) ) . 1)Можно ли все объекты занести в коллекцию, и одним запросом в БД добавить все строки ? 2) Как сделать синхронизацию , чтобы пока один пользователь добавляет , второй не мог вклиниться в этот момент ? По идее же в сервлет контейнере запросы выполняются в отдельных потоках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 13:23 |
|
||
|
Добавление данных в БД
|
|||
|---|---|---|---|
|
#18+
goldenhawkПо идее же дак я не понял. У тебя теория или ты писал Hello World JSP? И откуда взял, что нужно писать insert into? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 14:19 |
|
||
|
Добавление данных в БД
|
|||
|---|---|---|---|
|
#18+
Petro123goldenhawkПо идее же дак я не понял. У тебя теория или ты писал Hello World JSP? И откуда взял, что нужно писать insert into? Делаю через JDBC и PreparedStatement ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 15:21 |
|
||
|
Добавление данных в БД
|
|||
|---|---|---|---|
|
#18+
goldenhawkPetro123пропущено... дак я не понял. У тебя теория или ты писал Hello World JSP? И откуда взял, что нужно писать insert into? Делаю через JDBC и PreparedStatement ну и плюнь. 10 строк вставил, Будет 10 insert. Если у тебя импорт накладных сразу пачкой, тогда можно пошаманить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 16:36 |
|
||
|
Добавление данных в БД
|
|||
|---|---|---|---|
|
#18+
goldenhawk2) Как сделать синхронизацию , чтобы пока один пользователь добавляет , второй не мог вклиниться в этот момент ? По идее же в сервлет контейнере запросы выполняются в отдельных потоках. пусть 100 одновременно делают инсерт. Зачем ограничивать? Сначала придумай зачем, а потом будешь им мешать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 16:37 |
|
||
|
Добавление данных в БД
|
|||
|---|---|---|---|
|
#18+
Есть очень просто смысл для упорядочивания вставок на уровне сервиса - меньшая конкуренция в базе. Нет смысла запрещать "перемешивание" вставок от разных пользователей, но вот организовать очередь из которой только один поток будет выгребать значения для вставок - очень даже оправдано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 16:41 |
|
||
|
Добавление данных в БД
|
|||
|---|---|---|---|
|
#18+
goldenhawkВ Сервлете в методе doPost читаю строку из файла . Данные заношу в объект (сеттарами) и вызываю метод DAO, чтобы занести строку в БД. (Т.е. если 10 строк = 10 преобразований в объекты , 10 запросов в БД INSERT INTO Products VALUES(null,?,?,?,?,?) ) . 1)Можно ли все объекты занести в коллекцию, и одним запросом в БД добавить все строки ? 2) Как сделать синхронизацию , чтобы пока один пользователь добавляет , второй не мог вклиниться в этот момент ? По идее же в сервлет контейнере запросы выполняются в отдельных потоках. надо смотреть не на java на саму базу, напрмер в mysql такое возможно. и какие проблемы по п.2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 17:10 |
|
||
|
Добавление данных в БД
|
|||
|---|---|---|---|
|
#18+
goldenhawkМожно ли все объекты занести в коллекцию, и одним запросом в БД добавить все строки ? Можно, но в данном случае не нужно. Для добавления кучкой есть методы Statement.addBatch и PreparedStatement.addBatch с последующим executeBatch. Они ускоряют выполнение SQL-операторов, но это имеет значение, только если вставок объектов много, чего нет, поскольку они добавляются вручную. Однако если пользователь делает несколько изменений в базе, то может оказаться желательным, чтобы изменения были согласованными, то делались все или при ошибке отменялись все. Для этого применяются транзакции базы данных (операторы commit и rollback), а в JDBC это выражается как Connection.setAutoCommit (false), затем произвести все вставки, затем connection.commit() для подтверждения изменений или connextion.rollback() для их отмены при какой-нибудь ошибке (часто в блоке уловления исключения). goldenhawkКак сделать синхронизацию , чтобы пока один пользователь добавляет , второй не мог вклиниться в этот момент ? По идее же в сервлет контейнере запросы выполняются в отдельных потоках. Сначала понять, нужна ли она. Бывает по-разному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2015, 22:13 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2124703]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 505ms |

| 0 / 0 |
