Использование Hibernate через соединение ODBC - PullRequest
1 голос
/ 03 сентября 2011

Мне нужно использовать Hibernate через соединение ODBC (не мое решение) и хотел бы знать, как это сделать (если это вообще возможно?).Я провел некоторое исследование и немного растерялся, надеясь, что кто-то сможет прояснить некоторые моменты.Кажется, мне нужно использовать мост JDBC-ODBC?

Wiki - мост JDBC / ODBC

  1. Эта страница заполненас разными "типами" JDBC (1-4).Из того, что я могу понять, конкретные детали реализации драйвера увеличиваются с версией типа?то есть.драйвер ODBC типа 1 не может поддерживать те же функции, что и драйвер типа 4?Похоже, что драйвер ODBC не может пройти дальше 1, тогда как драйвер JDBC (может) получить значение 4?

  2. Если база данных назначения имеет свой собственный драйвер ODBC, какой уровень поддержкитребуется для работы?Должен ли я просмотреть документацию, чтобы увидеть, существуют ли вызовы уровня 1, уровня N и т. Д.

  3. Как и в случае с приведенным выше вопросом, как я могу убедиться, что поля больших объектов будут работать / ломаться?Нужно ли реализовывать уровень или определенные функции SQL в драйвере ODBC?

К сожалению, я немного расстроен в понимании того, что требуется от спящего режима, поскольку я не могу найти документацию относительно того, что ему нужно.Объяснение и / или документация были бы отличными.

1 Ответ

2 голосов
/ 03 сентября 2011

1) У ODBC нет «типов драйверов», как у java. Основное отличие (и почему в Java есть типы драйверов) заключается в том, что для некоторых драйверов требуются собственные расширения, которые нельзя переносить в другие ОС / архитектуры.

Например, драйвер JDBC типа 1 имеет чистые собственные привязки. Поэтому, если у вас есть что-то, работающее в Windows с использованием этого драйвера, вы не можете взять свое приложение и развернуть его в Linux, так как существует двоичная несовместимость.

Драйвер JDBC типа 4 находится на другой стороне шкалы, и он написан исключительно на Java, поэтому он может работать на любой платформе, на которой может работать JVM, без необходимости службы, которая переводит вызовы (которая является чехол с драйверами типа 3).

Таким образом, Тип 1 - чистый нативный, Тип 4 - чистый Java, с различными оттенками в середине.

2) Необходимо проверить драйвер поставщика БД. Можете ли вы сказать, какую БД вы используете?

3) Поля больших объектов "должны" работать, но это также зависит от драйвера, у него могут быть некоторые странные ограничения, такие как "драйвер не может обрабатывать поля больших объектов, размер которых превышает 4 КБ).

Мое профессиональное предложение состоит в том, чтобы вы ударили человека, решившего это, по следующим причинам:

  • Взято с сайта оракула: Драйвер JDBC-ODBC Bridge рекомендуется для использования при разработке прототипов и в случаях, когда не существует другого драйвера на основе технологии JDBC
  • из Википедии: По сравнению с другими типами драйверов он медленный
  • И вы найдете аналогичные комментарии на других сайтах поставщиков баз данных, поскольку драйверы JDBC эволюционировали LOT за последние 12 (или более) лет.
  • Вы пишете Java, а не VB.Net

И, пожалуйста, не бойтесь показывать этому человеку, что он / она неправ (в хорошем смысле, конечно).

...