powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Связка мастер-деталь в JDBC
5 сообщений из 5, страница 1 из 1
Связка мастер-деталь в JDBC
    #34880918
Darrin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, доброго времени суток.

Некоторое время назад судьба свела с Java (до этого долгое время занимался Delphi и талкивался с .net), и при первом же взгляде на JDBC неприятно удивило то, что параметры, используемые в SQL запросах, не имеют имён, а указываются в виде вопросиков.
Т.е. вместо (запросы к Oracle):
Код: plaintext
  Select * from MyTable where sName = :spName 
в JDBC придётся написать
Код: plaintext
  Select * from MyTable where sName = ?
и инициализировать значение параметра по порядковому номеру, а не по имени.

Основываясь на выше описанном, подскажите, как возможно реализовать связку двух источников данных по типу мастер-деталь (Т.е. при переходе с записи на запись в мастер-рекордсете, происходил бы перезапрос детального-рекордсета). Неужели, без написания кода руками, который бы при скроле мастера устанавливал бы параметры детальному запросу и вызывал его обновление никак не обойтись?

В Дельфи или .Net достаточно просто реализовать механизм (а то и использовать стандартный), в котором при перехде с записи на запись происходит обновление детальных датасетов, а перед обновлением детальный датасет запрашивает значения ИМЕНОВАННЫХ параметров (таких как ":spName" из примера) у своего мастера. В случае же JDBC не возможно автоматически определить, значение какого поля датасета-мастера нужно присвоить параметру детального запроса.
Подскажите пожалуйста, правильно ли я понимаю ситуацию, а если я ошибаюсь в каком направлении смотреть.

Зарание спасибо.
...
Рейтинг: 0 / 0
Связка мастер-деталь в JDBC
    #34880961
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руками или Hibernate к примеру
...
Рейтинг: 0 / 0
Связка мастер-деталь в JDBC
    #34880970
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что вас пугает, дело то в паре лишних строчек. С jdbc-commons вообще лафа, только запрос написать и бины.
...
Рейтинг: 0 / 0
Связка мастер-деталь в JDBC
    #34881025
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darrin
Т.е. вместо (запросы к Oracle):
Код: plaintext
  Select * from MyTable where sName = :spName 
в JDBC придётся написать
Код: plaintext
  Select * from MyTable where sName = ?
и инициализировать значение параметра по порядковому номеру, а не по имени.
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm#06_03
Do the Oracle JDBC drivers provided a Bind by Name facility?

Yes. See the JavaDoc for oracle.jdbc.OraclePreparedStatement. Look for the setXXXAtName methods. Also, oracle.jdbc.OracleCallableStatement supports binding arguments to PL/SQL procedures by the formal argument names. Look at the JavaDoc for the oracle.jdbc.OracleCallableStatement.setXXX(String, ...) methods.
...
Рейтинг: 0 / 0
Связка мастер-деталь в JDBC
    #34881244
Darrin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТимоНРуками или Hibernate к примеру
В том то и дело, что не охота эти 2 строчки писать, поскольку завязка датасетов декларативная, и мастер о деталях ничего не ведает.

Denis Popov Darrin
Т.е. вместо (запросы к Oracle):
Код: plaintext
  Select * from MyTable where sName = :spName 
в JDBC придётся написать
Код: plaintext
  Select * from MyTable where sName = ?
и инициализировать значение параметра по порядковому номеру, а не по имени.
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm#06_03
Do the Oracle JDBC drivers provided a Bind by Name facility?

Yes. See the JavaDoc for oracle.jdbc.OraclePreparedStatement. Look for the setXXXAtName methods. Also, oracle.jdbc.OracleCallableStatement supports binding arguments to PL/SQL procedures by the formal argument names. Look at the JavaDoc for the oracle.jdbc.OracleCallableStatement.setXXX(String, ...) methods.

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


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