|
|
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Используется ojdbc14.jar Oracle 10g java version "1.6.0_13" Java(TM) SE Runtime Environment (build 1.6.0_13-b03) Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing) Есть запрос типа Код: plaintext 1. 2. 3. 4. 5. В Д7 я делал так Код: plaintext 1. Код: plaintext 1. Код: plaintext так как использован позиционный метод установки параметров. Именованный не поддерживается драйвером. Кто может дать дельный совет? Как определить количество параметров и назначить все? Или какой драйвер(линк) и как использовать(пример кода), в котором имплементирована именованная установка параметров? _______ Жизнь - это два CD c Half-Life (λ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 16:35 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
bl_beard, Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 16:42 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
0FDbl_beard, Код: plaintext 1. в какой версии драйвера? в моей(указана в первом письме) такого метода нет. по крайней мере Eclipse в подсказке не дает такого метода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 16:54 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
bl_beard, Oracle JDBC Driver version - "10.2.0.4.0" А точно у тебя драйвер от 10g, может 9, а там этого нет(посмотри META-INF\MANIFEST.MF). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 17:13 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
bl_beardИспользуется ojdbc14.jar Oracle 10g java version "1.6.0_13" ... в какой версии драйвера? в моей(указана в первом письме) такого метода нет. Скачай последние драйвера : http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_112010.html и переключись на ojdbc6.jar. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 17:17 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Denis Popov, скачал. поменял. но сейчас на строке коннекта Код: plaintext 1. 2. Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 17:44 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
bl_beard, случайно рано запостил. Вообщем ошибка при соединении. Что фиксить?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 17:46 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
bl_beard, @//host_name:port_number/service_name jdbc:oracle:thin:@//10.10.0.23:1521/risk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 17:57 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
И вместо oracle.jdbc.driver.OraclePreparedStatement лучше использовать oracle.jdbc.OraclePreparedStatement ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 17:58 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
bl_beardВообщем ошибка при соединении. Что фиксить?.. Поменяй oracle.jdbc .driver .OraclePreparedStatement на oracle.jdbc.OraclePreparedStatement. И для остальных тоже, если в пакете oracle.jdbc есть класс одноименный с классом из пакета oracle.jdbc.driver, то бери первый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 18:00 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
0FD, Denis Popov первыми строками в файле класса Код: plaintext 1. 2. строку коннекта тоже поменял, но ошибка таже самая. еще Eclipse перед компиляцией говорит что у меня в проекте "Error exist", но при этом не показывает где. подозреваю что это в "Java Build Path"/Libraries/Jre System Library осталась ссылка на ojdbc14.jar, она показана как "(missing)" - как убрать ее из списка библиотек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 18:18 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
bl_beard еще Eclipse перед компиляцией говорит что у меня в проекте "Error exist", но при этом не показывает где. подозреваю что это в "Java Build Path"/Libraries/Jre System Library осталась ссылка на ojdbc14.jar, она показана как "(missing)" - как убрать ее из списка библиотек? У тебя ojdbc14.jar подключен прямо в JRE System Library? На мой взгляд, лучше убрать оттуда все сторонние архивы, оформить их в виде отдельных библиотек и эти библиотеки подключать к проекту по необходимости. JRE правится по меню Window->Preferences, ветка Java\Installed JREs ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 18:41 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Denis Popov У тебя ojdbc14.jar подключен прямо в JRE System Library? На мой взгляд, лучше убрать оттуда все сторонние архивы, оформить их в виде отдельных библиотек и эти библиотеки подключать к проекту по необходимости. JRE правится по меню Window->Preferences, ветка Java\Installed JREs здесь "Java\Installed JREs" пусто. Denis Popov У тебя ojdbc14.jar подключен прямо в JRE System Library? как узнать подключен или нет? У Хорстмана и Корнелла прочитал что по их мнению некошерно подключать наборы библиотек к проектам глобально, используя "jre\lib\ext\", но не дали никаких рекомендаций, как это сделать по хорошему. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 19:23 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
bl_beardздесь "Java\Installed JREs" пусто. Я бы создал здесь JRE. чтобы использовать в проектах bl_beard Denis Popov У тебя ojdbc14.jar подключен прямо в JRE System Library? как узнать подключен или нет? Если в списке библиотек проекта развернуть ветку начиная с "JRE System Library", то там должен быть список архивов в него входящих. Только здесь этот список только на чтение, а редактируется в "Java\Installed JREs". bl_beard У Хорстмана и Корнелла прочитал что по их мнению некошерно подключать наборы библиотек к проектам глобально, используя "jre\lib\ext\", но не дали никаких рекомендаций, как это сделать по хорошему. :( Чтобы не путаться, давай в этой фразе под "набором библиотек" я буду понимать набор jar-архивов. Практические все среды разработки позволяют организовывать "библиотеки", т.е. набор jar-архивов. Лежать они могут где угодно на диске, но, действительно, лучше их не класть в jre\lib\ext, а то в конце концов сам запутаешься в этой свалке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 19:42 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
bl_beard, Этот JDBC 3.0 feature: Named Parameters - Using Oracle Database 10g JDBC APIs in PreparedStatement пример не поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 10:34 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Denis Popov, Спасибо за советы, помогло. И даже с первым вопросом разобрался. :) Назначение по имени заработало, но ошибка "инвалид чарактер" осталась. оказалось в конце запроса стояла ";", запрос во всех средах (Oracle SQL Dev, Toad) выполнялся, а в моей java-проге нет. теперь все хорошо. :) Итог: - перешел на новый драйвер - заработало назначение параметров по имени (***) - организовал библиотеку пысы в пункте (***) тут остался нюанс: оно оказывается регистрозависимое :( Код: plaintext 1. Код: plaintext 1. 2. 3. 4. кто то знает что с этим можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 10:59 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
bl_beard wrote: > в пункте (***) тут остался нюанс: оно оказывается регистрозависимое :( .... > кто то знает что с этим можно сделать? Забавно, в документации это явно не указано... Боюсь, придется с этим жить, по крайней мере при текущей версии ораклового JDBC-драйвера. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 11:45 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Еще один "сюрприз" Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Результат выпонения: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Вот так! Драва: ojbc6.jar Implementation-Version: 11.2.0.2.0 Java 1.6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2012, 20:47 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
ilych2000, Ничего не понял. О чём всё это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 08:56 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
О том, что в OracleCallableStatement при бинде именованных параметров не должен быть важен порядок сетов. То есть Код: java 1. 2. и Код: java 1. 2. Не должно иметь значение. А мой пример показывает обратное. Причем в OraclePreparedStatement, то есть в селектах этот пример работает как должен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 09:08 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
ilych2000, а кому оно надо, писать на PSQL в Java на клиенте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 09:33 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Странный вопрос. В моем проекте все чтение из БД идет селектами, а изменение строго вызовом хранимок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 09:39 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
ilych2000, ну, дак я вас тоже не понял, как и Garrick. Например, зачем PSQL ниже: String proc ="declare \n" + " q1 VARCHAR2(20) := :a1; \n" + " q2 VARCHAR2(20) := :a2; \n" + "begin \n" + " :b1 := q1;\n" + " :b2 := q2;\n" + "end;\n"; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 10:02 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123, Это просто пример по баг с параметрами. Все просто. Есть толстый клиент на Дельфях. В нем это все работает без проблем. Причем тексты PSQL хранятся на серваке в блобах и могут написаны как угодно, но выполняются, в толстом клиенте и PLSQLDevelopere. И они должны вызываться из Java без изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 10:17 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
ilych2000Причем тексты PSQL хранятся на серваке в блобах вот с этого и начинай. IMHO - это изврат на любом ЯП (для этого есть сам сервер). - это всё равно, что хранить Дату в строке. Поэтому ваш баг малоинтересен в практике. Удачи! ______________________________________________ "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 10:23 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
ilych2000Результат выпонения: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Вот так! Драва: ojbc6.jar Implementation-Version: 11.2.0.2.0 Java 1.6 По-моему методы setXXX() в текущей реализации просто присваивают параметры по порядку, и то, что первым аргументом можно передать строку, а не число, это какой-то неподдерживаемый сюрприз. Попробуй туда передать несуществующий параметр, например: Код: java 1. 2. и оно все равно работает. А для поименного привязывания в оракловом драйвере есть методы setXXXAtName, да только нет метода registerOutputParameterAtName(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 10:45 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
ilych2000Причем тексты PSQL хранятся на серваке в блобах и могут написаны как угодно, но выполняются, в толстом клиенте и PLSQLDevelopere. И они должны вызываться из Java без изменений. Вау-у-у! Про функции и процедуры с параметрами в базах данных ничего не слышали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 10:47 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Denis Popov, Вы правы для хранимок Для селектов все работает как надо - нужны правильные имена ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 10:51 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Garrick, Анонимные процедуры хранятся в блобах или формируются непосредственно в коде. Клиент представляет собой инструмент не предоставляющий пользователю возможность создавать в БД функции или процедуры. Это как система управления сайтом (CMS) не создает файлы контента на сайте, а хранит их в БД. В общем суть проста в части выполнения селектов драва правильно работуют с именованными параметрами, а в части процедур просто заимплементили java.sql.CallableStatement setString(String parameterName, String x) на бинд тупо по порядку следования параметров в процедуре. Такое поведение не описано в доках. Считаю это багом. И дровам в этом месте надо выдавать SQLFeatureNotSupportedException так как так и есть, а не пудрить мозг программистам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 11:03 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
ilych2000Denis Popov, Вы правы для хранимок Для селектов все работает как надо - нужны правильные имена А у меня работает... Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plaintext 1. Правда, еесли заменить на OraclePreparedStatement, то у него метода st.setString(String, String) нет. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 11:07 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
ilych2000Клиент представляет собой инструмент не предоставляющий пользователю возможность создавать в БД функции или процедуры. ===== ну дак пишите на Delphi или Java :) Зачем вам PSQL? Это как система управления сайтом (CMS) не создает файлы контента на сайте, а хранит их в БД. ===== не путай ядро ИС с USER-контентом cms ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 11:14 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Denis Popov, Перефразирую В общем суть проста в части выполнения PreparedStatement драва правильно работуют с именованными параметрами, а в части CallableStatement просто заимплементили java.sql.CallableStatement setString(String parameterName, String x) на бинд тупо по порядку следования параметров в процедуре. Такое поведение не описано в доках. Считаю это багом. И дровам в этом месте надо выдавать SQLFeatureNotSupportedException так как так и есть, а не пудрить мозг программистам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2012, 11:22 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Апну, ибо не нашел. Говорит: Попытка присвоения имени параметра, которое не встречается в данном SQL: param1 При том, что параметр с именем "param1" в процедуре точно есть. Пробовал менять регистр, пробовал вместо CallableStatement, PreparedStatement: ругаецо на класс, типа не может преобразовать PreparedStatement в CallableStatement. ojdbc6, ora11.2. При обращении по индексу работает нормально, но надо по именам параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:26 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. Говорит, что поддерживаются. Есть подозрение, что должен соблюдаться порядок следования этих параметров. То есть если задаем первый параметр, для стейтмента, то даже обращаясь по имени, он и в параметрах хранимки в БД тоже должен быть первым. Видимо об этом и речь в топике. Но это ж косяк как-то. Смысл тогда в таких параметрах. Как использовать PreparedStatement вместо CallableStatement пока не понял :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:33 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Есть подозрение, что должен соблюдаться порядок следования этих параметров. Подозрение не подтвердилось. В чем засада не ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:37 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSПодозрение не подтвердилось. В чем засада не ясно.нету Java именованных параметров. Т.к. мало челов пишут на голом JDBC imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 15:12 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS, побуду буквоедом, но тут ошибка: NAMED PARAMETERS FOR CALLABLE STATEMENTS IS SUPPORTED во множественном числе ARE сорри ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 15:12 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123нету Java именованных параметров. Т.к. мало челов пишут на голом JDBC imho Это было бы просто дико, особенно учитывая, что в спецификации setString/Int/...itc есть возможность обращаться не только по индексу, но и по имени. Без этого jdbc превращается в суровый хардкод инструмент же ) И больше того, у меня похоже, все-таки получилось: надо когда пишешь фукнцию в колблстейтмент параметры писать не вопросиками, а именами с двоеточием типа: Код: java 1. тогда вроде нормуль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 15:24 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
lor2побуду буквоедом, но тут ошибка Мопед не мой ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 15:26 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSтогда вроде нормуль. попробуешь отпишись. Я свой переделаю под имена. НО! Должен работать .SetObject! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 15:27 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Не понимаю чего тут не понятного. Классический вариант заполнения параметров в запросе JDBC выглядит следующим образом Код: plsql 1. 2. 3. 4. 5. Т.е. знаки вопросов в строке запроса и последовательно с соблюдением порядка следования "вопросов" заполнение параметров. Но в JDBC от Oracle (возможно и другие) есть возможность использовать, т.н. именованные параметры. Выглядит это примерно так: Код: plsql 1. 2. Т.е. вместо вопросов указываем имена параметров, предваряя их двоеточием. Заполняем параметры по имени с использованием методов setXXXAtName(), порядок следования не важен. Binding by name is not supported when using the setXXX methods. Under certain circumstances, previous versions of Oracle JDBC drivers have allowed binding statement variables by name when using the setXXX methods.... Starting from Oracle Database 10g JDBC drivers, bind by name is supported using the setXXXAtName methods. тут Аналогичная штука с именованными параметрами есть в Spring JDBCTemplate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 16:53 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
можно и так Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 17:03 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
GarrickНо в JDBC от Oracle (возможно и другие) есть возможность использовать, т.н. именованные параметры. Выглядит это примерно так: Если на входе Null то будет raise ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 17:07 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Garrickp.setIntAtName кроме того, сам код)) не в состоянии тип определить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 17:09 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Garrick, в Delphi так p.ParamByName(цццццц).выбирай_далее_что_угодно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 17:11 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123попробуешь отпишись Попробовал: 1. работает конечно, можно обращаться по именам не важно в каком порядке 2. все-таки надо прежде сначала все проиницилизировать именно потому, что: Petro123Если на входе Null то будет raise Надо проверить, но думаю не совсем так. Точнее наверно будет: если параметр не проинициализирован, то будет райс. Т.е. сначала можно проинициализировать все параметры например пустым значением, потом уже заполнять, существующие. 3. С типами все-таки беда, setObject в большинстве случаев преобразует в строку и вызов ломается. Сделал все входные параметры процедуры строковыми, заработало, но тогда придется в самой хранимке уже преобразовывать, для вставки в поля таблиц. Геморрой короче. Но видимо, еще сами данные такие, что фиг преобразуешь толком. Плюс еще CLOB-ы предвидятся ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 17:19 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS...С типами все-таки беда, setObject в большинстве случаев преобразует в строку и вызов ломается. Сделал все входные параметры процедуры строковыми, заработало, но тогда придется в самой хранимке уже преобразовывать, для вставки в поля таблиц. Геморрой короче. Но видимо, еще сами данные такие, что фиг преобразуешь толком. Плюс еще CLOB-ы предвидятся ) IMHO Какой-то поток сознания. Без примера кода - ни фига не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 17:25 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevIMHO Какой-то поток сознания. Речь о том, что хотелось бы иметь возможность при работе с ojdbc распознавать типы параметров хранимки, чтобы явно преобразовывать параметры к нужному типу. Есть например ParameterMetaData, но максимум получается только достать количество параметров, а их тип - нет. Поэтому остается: - или все параметры хранимки делать строковыми и уже в самой хранимке приводить к нужному типу для вставки в таблицы - пытаться определить тип косвенно по формату строки - или хардкодить по всем полям Вообще изначальная задача загрузка xml :) поэтому может быть конечно еще куча вариантов, типа залить в xml целиком как clob в базу и работать с ним уже там ), но пока мучаю sax-парсер. В общем беда :/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 17:37 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSраспознавать типы параметров хранимки, чтобы явно преобразовывать параметры к нужному типу И в чем проблема? JDSЕсть например ParameterMetaData Зачем ParameterMetaData? С учетом, что документация ничего не обещает. ДокументацияAn object that can be used to get information about the types and properties for each parameter marker in a PreparedStatement object. For some queries and driver implementations, the data that would be returned by a ParameterMetaData object may not be available until the PreparedStatement has been executed. Some driver implementations may not be able to provide information about the types and properties for each parameter marker in a CallableStatement object. Что в общем и логично. Т.к. CallbableStatement не обязательно хранимка, а может быть и анонимный PL/SQL блок, у которого типов параметров может не быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 17:51 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS, Есть доки из какого типа в какой приводит jdbc. У меня тоже xml импорт. И решил как написал выше. Код в 2 строки. Null ничего не ломает, т.к xml его может не быть. Нет именованных, но зато компактность кода для 30 параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:01 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123Нет именованных, но зато компактность кода для 30 параметров. Согласен, но это похоже, только если типы простые совсем типа строка и целое число. Буду приводить все к строковым параметрам в хп :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:08 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, насчет анонимного блока прояснило суть почему не определить тип. Других вариантов в ojdbc нет? ) Не ясно зачем тогда вообще ParameterMetaData. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:11 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
авторПоэтому остается: - или все параметры хранимки делать строковыми и уже в самой хранимке приводить к нужному типу для вставки в таблицы - пытаться определить тип косвенно по формату строки - или хардкодить по всем полям строковые от не строковых для ...prepareCall("{call proc_name("+param1_name+"," + param1_name+")}"); будут отличаться только наличием кавычек можешь выбрать все строковые из твоих входных, добавить одинарные кавычки в начале и в конце, слить в строку и скормить ...prepareCall("{call proc_name("+набор_параметров+")}"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:13 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSPetro123Нет именованных, но зато компактность кода для 30 параметров. Согласен, но это похоже, только если типы простые совсем типа строка и целое число. Буду приводить все к строковым параметрам в хп :( Ты не прав и тебе лень дать поиск соответствий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:22 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
вадя, Он хочет в хранимке все парам строками. Даже даты. А так нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:24 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123Он хочет в хранимке все парам строками. Даже даты. А так нельзя. Допустим, в xml дата: 2007-03-16T14:15:15.743 Если бы мог доставать тип параметра из хранимки, то мог явно преобразовать к дате или там таймстэмпу или еще как, а просто setObject что-то для данной строки не лезет в поле даты :/ Кстати еще ж вариант брать типы параметров хранимок из словаря БД ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:33 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSДругих вариантов в ojdbc нет? Вариантов чего? Если: JDSраспознавать типы параметров хранимки, чтобы явно преобразовывать параметры к нужному типу В Oracle это делается без проблем и без всякого ParameterMetaData. См. представления Oracle. Для public процедур (а что бы вызвать, она должна быть public) все параметры описаны в соответствующих представлениях. Кроме того, пишут, что через Connection.getMetaData() можно получить метаданные для БД и уже оттуда, через getProcedures и getProcedureColumns получить типы параметров. JDSНе ясно зачем тогда вообще ParameterMetaData. Наверное, что бы их можно было получить, если типы параметров известны ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:33 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevвсе параметры описаны в соответствующих представлениях Об этом уже подумал выше. Но это как-то жестоко все-таки ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:43 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSОб этом уже подумал выше. Но это как-то жестоко все-таки Почему. Нормальный, документированный способ для работы с Oracle. Другие СУБД, обычно, тоже метаописания имеют. Если хочется удалять гланды через жопу быть true java программистом - можно через Connection.getMetaData() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:48 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS, SetObj не работае с датами? Стек ошибки дай. Завтра проверю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 18:49 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevПочему. Нормальный, документированный способ для работы с Oracle. После тех же делфей это уже геморройный способ ) Сделали бы при вызове prepareCall, чтобы он в стейтменте собирал инфу и о параметрах все-таки, было бы замечательно ) Petro123SetObj не работае с датами? Стек ошибки дай. Завтра проверю Суть, в поле даты xml файла пишем например 2007-03-16T14:15:15.743 Ну и подаем это через setObj в параметр типа дата - не явное преобразование не проходит конечно: Код: plsql 1. В timestamp тоже не лезет однако ): Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 19:14 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSСуть, в поле даты xml файла пишем например 2007-03-16T14:15:15.743 Ну и подаем это через setObj в параметр типа дата - не явное преобразование не проходит конечно: Ты так и не понял что ли? Какие нафиг в Java неявные преобразования? Драйвер определяет тип по типу класса. Значит в SetObject нужно передать класс Даты а не Класс строка. Неужели не понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 19:35 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. почти 4 строки кода. Что не работает? Парсер XML любыми способами готовит массив или коллекцию. Не должен Java код бизнес уровня быть замусорен техническим кодом уровня СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 19:41 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123Драйвер определяет тип по типу класса. Значит в SetObject нужно передать класс Даты а не Класс строка. Это уже лучше и даже здорово, но тогда снова возвращаемся к тому с чего начали: определение типа параметра :) И если так, то выход один значит: юзать словарь БД. При этом сейчас наткнулся на вообще странное поведение - параметры, не смотря на то, что заданы четко в соответствии именам и порядок их следования в объявлении стейтмента четко соответствует порядку в ХП, приходят они в ХП вообще наперекосяк перепутавшись местами ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 19:41 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSЭто уже лучше и даже здорово, но тогда снова возвращаемся к тому с чего начали: определение типа параметра :) нет. Из XML ты должен знать что приходит и трансформировать в объекты типа. Иначе заливай строку XML одной строкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 19:44 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Попробовал указать явно все параметры таким макаром: Код: plsql 1. Нипамагает. Все равно в ХП значения приходят наперекосяк. Печаль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 19:46 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS, я тебя понял. Ты от ленности максимально оттягиваешь момент разбора мусора в XML для заливки в БД. Имена полей и типы полей известны на момент разработки. И никак иначе. Просто чтобы дважды не писать длинный код ты валидируешь XML парам. самим парсером, а в БД тип заливается автоматом. Ты же пытаешься в рантайме определить не только тип поля из XML, но и залить его в зависимости от типа серверного программиста. Так не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 19:48 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSНипамагает ну тогда только мой вариант в 4 строки. И не ленись парсить XML по настоящему. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 19:49 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123Из XML ты должен знать что приходит и трансформировать в объекты типа. Не улавливаю. Тогда получается, мне надо обработать каждое поле. Хотел так: 1. Есть xml c известными полями (при этом определенных тегов для разных сущностей может и не быть) 2. Согласно сущностям xml делаем хранимки в БД, так чтобы имена параметров совпадали с именами тегов (благо имена позволяют) 3. Читаем тег, по его имени достаем параметр хранимки, по этому параметру определяем какого он типа, приводим к этому типу и засовываем значение тега в значение параметра (как ты говоришь, уже трансформированное в нужный тип/класс) Попробую сделать вариант такой, и наверно это имеется в виду: 1. для сущности в xml создается соответствующий класс в яве с полями соответствующих типов. 2. читаем xml в этот класс 3. переливаем в параметры стейтмента поля нашего класса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 19:56 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSPetro123Из XML ты должен знать что приходит и трансформировать в объекты типа. Не улавливаю. Тогда получается, мне надо обработать каждое поле. Хотел так: 1. Есть xml c известными полями (при этом определенных тегов для разных сущностей может и не быть) == да 2. Согласно сущностям xml делаем хранимки в БД, так чтобы имена параметров совпадали с именами тегов (благо имена позволяют) === почти. Можно и однаХПнаОднуXML_Накладная 3. Читаем тег, по его имени достаем параметр хранимки, по этому параметру определяем какого он типа, === да. Валидация обязательна т.к. это общение 2-х ИС между собой. И версию ещё внутрь XML засунуть. приводим к этому типу и засовываем значение тега в значение параметра (как ты говоришь, уже трансформированное в нужный тип/класс === да. Тут как удобней при заливке. Я простым линейным списком статического массива делал. Т.к. insert в одну таблу сразу ) Попробую сделать вариант такой, и наверно это имеется в виду: 1. для сущности в xml создается соответствующий класс в яве с полями соответствующих типов. 2. читаем xml в этот класс 3. переливаем в параметры стейтмента поля нашего класса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 20:06 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS1. для сущности в xml создается соответствующий класс в яве с полями соответствующих типов. если есть автомат для этого дела, то я за. Но я думаю, понадобится маппинг или DTD схема или .... В общем тут поправят, но нужны простые классы для отрибутов. Я читал ноды XML руками и мне легко было читать дату ДатаРождения и я знал что это дата)))) LOL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 20:10 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123Я читал ноды XML руками и мне легко было читать дату ДатаРождения и я знал что это дата)))) LOL Если xml сложный, содержит много сущностей для разных таблиц, с зависимостями, глубоким деревом, кучей тегов, которые могут пропускаться, если нет значения, то ладно еще в БД прописать куда что раскладывать, но когда это же еще надо и в яве прописывать, по-моему это уже не рационально: ты же прописал все в БД, то есть у тебя есть уже типы параметров(полей), вот их достаешь (придется из словаря все же видимо) и дальше уже просто по имени тега сопоставляешь, не перебирая в яве, типа если это такое поле, то это поле даты, если такое, то это число и т.д. И я сначала так и подумал, что setObject чудесным образом сам все поймет и преобразует к нужному типу ))) В общем ясно. Но возникает вопрос, есть в яве возможность индексировать массив строковыми ключами? ) То есть ну создал ты массив, где явно прописал: такое-то поле преобразуем к такому-то типу, такое-то к такому, но потом бегать по всему массиву, выискивая по имени тега нужный параметр совсем не норма имхо. Или например есть ли возможность обратиться к полю класса динамически задавая имя поля? Типа как в js можно обращаться например не Код: javascript 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 22:14 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Просто если это реализовать, то парсер получится маленький, практически универсальный и довольно шустрый. По-моему наоборот, в части загрузки того же xml явой не должно быть здесь никакой бизнес-логики - просто утилита загрузки и ничего более, транзит, а вот уже в базе все и разруливается куда что класть. Больше того, в базе по-любому же придется прописывать все поля и типы. Не уверен, что имеет смысл все это дублировать в яве ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 22:22 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSа вот уже в базе все и разруливается куда что класть тебя тут не поймут. На каком ЯП в базе разруливать. Приведи пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 22:35 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS, так что ли? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 22:40 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123На каком ЯП в базе разруливать. Приведи пример. Что значит на каком ЯП? Если брать оракл, то PL/SQL. Вариант селекта из xml тоже вариант, кстати и может быть довольно мощный, не пробовал. Т.е. xml в виде CLOBа тащим в базу и в хранимке делаем из него селект, - мощно будет :) Но говорю о том, что. Когда мы заливаем данные в базу, то мы: - готовим под эти данные структуры в базе, в частности таблицы - готовим ХП в базе, которые кладут в конечном итоге данные в эти таблицы при чем здесь внутри БД мы уже вольны писать гораздо эффективнее, чем на яве в плане работы с данными, можем делать на этом этапе кучи проверок, трансформаций, дополнений и т.д. (и если делать это же самое через яву, то мы просто удвоим и себе объем работы и машине). Т.е. по-моему данная задача должна сводиться к созданию в яве интерфейса для БД, чтобы она могла "прочитать" этот файл. Т.е. достаточно явой сопоставить сущности+поля БД, с сущностями+полями в xml и привести их к типам в БД, никакой бизнес-логики в яве здесь не вижу :(, просто транзит/маппинг данных из файла в БД. По-моему мы об одном говорим, но может чего-то не понимаю или не понимаю выражение "бизнес-логика" ) Например: Petro123=== почти. Можно и однаХПнаОднуXML_Накладная Вот эта ХП. Она же будет раскладывать данные по разным таблицам (контрагенты, товары, склады, цены). При этом, как правило, в будет делаться куча проверок, как явных в ХП, так и на автомате (констрейнты, обновление различных мат. вью, консолидация данных для отчетов и т.д.), данные в большинстве случаев в дальнейшем или сразу на лету трансофрмируются в зависимости от уже существующих в БД других данных и т.д. вот это и понимаю под бизнес-логикой. Делать это на яве мне кажется странным. По-моему ява ж не заточна на манипуляции с данными в контексте реляционной БД. Или я чего-то не знаю? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 00:46 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS, Off - а если у вас Postgre то будем на PostgrePL писать? - а если импорт придёт от ИС с этого же домена по REST? Все индивидуально. Ты java программист или разработчик бд? В одном лице может крышу снести)))). Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 08:22 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123Garrickp.setIntAtName кроме того, сам код)) не в состоянии тип определить? Можно использовать setObjectAtName . Spring, например, так делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 09:20 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Garrick, замечательно. Попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 10:03 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Petro123- а если у вас Postgre то будем на PostgrePL писать? - а если импорт придёт от ИС с этого же домена по REST? Все индивидуально. А как еще? Конечно придется писать на PostgrePL. Куда денешься от того, чтобы прописывать сущности в БД? ) И потом ojdbc работает с Postgre? Если нет, то придется ж и загрузчик на яве все равно переписывать или писать его с каким-нибудь универсальным провайдером данных типа одбц или датасорсы того же гласфиша Но посыл понял ) Просто практически не работал с коробочными решениями, ориентированными на большой круг потребителей и потому заточенных на работу с любой БД. Все крупные конторы, которые видел, как правило, имеют свою систему очень плотно завязанную на конкретную СУБД. По-моему нельзя добиться эффективной отдачи от СУБД, используя ее только как таблички, а всю обработку данных, бизнес-логику вынести в яву, точнее можно, но тогда зачем тот же oracle? Бери таблички MSSQL и вперед )) Истина где-то посредине наверно, конечно все индивидуально ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 10:10 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS, давай завязывать OFF. Хибер, ОРМ и АппСервер работают со всеми СУБД сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 10:30 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Да и JDBC, Select и Insert от БД к БД меняются не сильно. Особенно в контексте задачи разобрать XML и разложить по полям таблицы. У JDS какой-то поток сознания: 1. Хочешь на Java - делай на Java. В чем проблема? 2. Хочешь на PL/SQL - делай на PL/SQL. Опять таки, в чем проблема? Oracle PL/SQL базовые средства работы с XML (но только через DOM) имеет, т.ч. можно и весь разбор на PL/SQL написать. Скорее всего будет работать значительно медленнее, чем на Java, но решать Вам. 3. Проблема сформулированная изначально "определить типы параметров сторед процедуры" - надуманная. Т.к. все необходимые средства для этого есть. И в Oracle (вьюшки с метаописанием) и в JDBC (независимо от типа БД). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 10:50 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Petro123, со всем согласен. Написать-то можно, не вопрос, но хочется ж оптимально и грамотно, а получается какое-то мясо пока. Более предметно. В соседней теме посоветовали юзать hashmap, для доступа к "массиву" по строковым ключам, набросал такой треш ) : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. Еще не пробовал, т.к. не нравится. Т.е. для каждой сущности создаем свой класс, в котором по мере разбора xml заполняем fieldValues. Пошла новая сущность, добавили все значения fieldValues в пакет стейтмента, очистили fieldValues, читаем xml дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 11:43 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS Код: java 1. поздравляю. Ты изобрёл java.sql.DataSet ну, или JDBC RowSet (Sun JCP, JSR 114) JDSно хочется ж оптимально и грамотно перфекционист? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 11:53 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSТ.е. для каждой сущности создаем свой класс, осталось чуть до маппинга и ОРМ в виде хибера или iBatis. .... Дайте ему сериализацию или маппинг из XML сразу в обхекты. И пусть парит мозги соисполнителю если его XML не такой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 11:55 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDS, тебе дали разработку Модуля импорта из XML в БД. Версия 1.0 - пол дня работы. Сделал? Это imho В след.версиях улучшишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 11:59 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
Garrick, возможно, но думал, без стороннего все можно сделать. Petro123, "потом" как правило не наступает, т.к. появляются новые задачи ) поэтому лучше по возможности делать сразу нормально, чем потом переделывать. В общем, если других нормальных вариантов кроме хиберов, то придется жить с этим пока ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2016, 12:06 |
|
||
|
JDBC+Oracle(Parameters)
|
|||
|---|---|---|---|
|
#18+
JDSGarrick, возможно, но думал, без стороннего все можно сделать. Petro123, "потом" как правило не наступает, т.к. появляются новые задачи ) поэтому лучше по возможности делать сразу нормально, чем потом переделывать. В общем, если других нормальных вариантов кроме хиберов, то придется жить с этим пока ) А что, есть уверенность что хибернейт вызов хранимки в oracle сможет нормально сделать? К примеру, Код: plsql 1. 2. 3. 4. 5. и далее, Код: plsql 1. 2. 3. я думаю, тоже ничего хорошего не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 09:08 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2124169]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
153ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
104ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 539ms |

| 0 / 0 |
