Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392

Про Connection и PreparedStatement

22.08.2014, 15:30. Показов 1233. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемые форумчане...

Имеется подключение к базе...

Java
1
2
3
4
5
6
7
private Connection connection;
private PreparedStatement stmtUpdateReceiver;
 
 
log("Подключаемся к базе данных (name: " + Constants.name + ", database: " + Constants.database + ")...");
ConnectToMySQL();       
stmtUpdateReceiver = connection.prepareStatement("UPDATE car SET color=? WHERE model=?");
Далее это подключение я хочу использовать так:
Java
1
2
3
4
                            
@SuppressWarnings("rawtypes")
Future future = execService.submit(new UpdateThreads (row, stmtUpdateReceiver) );
waitinglist.add(future);
Тоесть создам пул порядка 100-200 потоков, в которых асинхронно будет вызван:
Java
1
2
3
stmtUpdateReceiver.setString(1, str[1]); //модель
stmtUpdateReceiver.setString(2, str[0]); //цвет
stmtUpdateReceiver.executeUpdate();
Вот и вопросик возник, так можно делать ? Или этот объект stmtUpdateReceiver нужно как то синхронизировать ? Если да то как будьте любезны подскажите пжалуйста...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2014, 15:30
Ответы с готовыми решениями:

Как закрывать connection in PreparedStatement
Народ всем привет есть БД на postgres которое подключается к коду при помощи ConnectionPool C3p0(pooling data) а обработка базы...

Как избавится от многократного употребления connection.Open(), connection.Close()?
Привет, в проекте планируется использовать dapper для организации кода и мапинга, а я так привык к EntityFramework, что постоянное открытие...

Ошибка: WebSocket connection to 'wss://localhost:8777/' failed: Error in connection establishment: net::ERR_CONNECTION_R
На локальном сервере работает, на нормальном нет. Без SSL не работало, подключил, тоже не работает. var socket = new...

4
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
22.08.2014, 16:33
Лучший ответ Сообщение было отмечено Critically как решение

Решение

Цитата Сообщение от Critically Посмотреть сообщение
Или этот объект stmtUpdateReceiver нужно как то синхронизировать ?
Да, нужно будет синхронизировать. Использовать одновременно один и тот же JDBC-объект из разных потоков нельзя.
Например так:
Java
1
2
3
4
5
synchronized(stmtUpdateReceiver) {
stmtUpdateReceiver.setString(1, str[1]); //модель
stmtUpdateReceiver.setString(2, str[0]); //цвет
stmtUpdateReceiver.executeUpdate();
}
1
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
22.08.2014, 20:43
Цитата Сообщение от Critically Посмотреть сообщение
Или этот объект stmtUpdateReceiver нужно как то синхронизировать ?
Не нужно ничего синхронизовывать. Нужно на каждый запрос создавать новый statement и закрывать его после выполнения запроса.
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
22.08.2014, 20:45
aleksandy, это не решит проблему с многопоточным доступом к Connection: его тоже нельзя использовать из множества потоков одновременно.
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
22.08.2014, 21:00
За коннект никто не спрашивал. А вообще коннект тоже надо получать только тогда, когда он реально нужен. И сразу же закрывать.

Про пулы коннектов я в курсе. Их использование ничего не меняет: коннект надо закрывать. А закрывается он физически или просто возвращается в пул - это дело десятое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.08.2014, 21:00
Помогаю со студенческими работами здесь

PreparedStatement
всем добрый день, есть код : package com.mysql; public class DaoAllSubjectsStudents implements...

PreparedStatement
Здравствуйте, необходимо сделать одно DAO, и в нём 2 PreparedStatement (для каждого из методов), один я создаю и использую, а второй не...

PreparedStatement + MySQL
Коллеги, привет! Столкнулся с такой проблемкой. Хочу с помощью PreparedStatement создать схему на MySQL, собственно использую такой...

JDBC: PreparedStatement
Возник вопрос: в каком месте я имею право ставить знак "?"? SELECT ? FROM some_table; SELECT * FROM some_table WHERE ? = 3; Нельзя ли...

Синхронизация PreparedStatement
Вызываются разные статические процедуры одного класса которые используют одни и те же статические PreparedStatement. Можно ли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru