Progress28.ru

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Java jdbc maven

Найти драйвер Oracle JDBC в репозитории Maven

Я хочу добавить драйвер oracle jdbc в свой проект как зависимость (область выполнения) — ojdbc14. На сайте MVNrepository зависимость для размещения в POM:

конечно, это не работает, поскольку он не находится в Центральном репозитории, используемом maven. 2 вопроса:

Как найти репозиторий (если есть), содержащий этот артефакт?

Как добавить его, чтобы Maven использовал его?

16 ответов

как найти репозиторий (если есть), содержащий этот артефакт?

к сожалению, из-за двоичной лицензии нет публичного репозитория с JAR драйвера Oracle. Это происходит со многими зависимостями, но не является ошибкой Maven. Если вам случится найти публичный репозиторий, содержащий банку, вы можете быть уверены, что это незаконно.

как добавить его, чтобы Maven использовал его?

некоторые банки, которые не могут быть добавлены из-за лицензии причины есть пом запись в Maven Central repo. Просто проверьте это, он содержит предпочтительную информацию Maven поставщика:

Как только вы загрузили банку, просто добавьте ее в репозиторий компьютера (обратите внимание, что я вытащил groupId, artifactId и версию из Пом):

последний параметр для генерации POM спасет вас от pom.предупреждения xml

Если у вашей команды есть локальный репозиторий Maven данное руководство может быть полезно загрузить банку там.

по какой-то причине, я не мог получить любой из вышеуказанных решений. (Все еще не могу.)—3—>

вместо этого я включил jar в свой проект (blech), а затем создал для него «системную» зависимость, которая указывает путь к jar. Возможно, это неправильный способ, но он работает. И это устраняет необходимость для других разработчиков в команде (или парня, настраивающего сервер сборки), чтобы поместить банку в их локальную хранилища.

обновление: это решение работает для меня, когда я запускаю Hibernate Tools. Однако он, похоже, не работает для создания файла WAR. Он не включает ojdbc6.файл jar в целевом файле войны.

1) создайте каталог под названием «lib» в корне вашего проекта.

2) скопируйте ojdbc6.файл jar там (независимо от того, как называется jar.)

3) Создайте зависимость, которая выглядит примерно так это:

некрасиво, но работает для меня.

чтобы включить файлы в файл war, добавьте в pom

загрузите банку и поместите ее в свой проект src/lib . Теперь вы можете использовать плагин Maven installer.

Теперь вам нужно только выполнить mvn clean один раз и Oracle lib установлен в вашем локальном репозитории maven.

Oracle теперь предоставляет репозиторий maven на maven.oracle.com Однако вы должны быть аутентифицированы.

согласно комментариям в блоге ojdbc драйвер должен быть доступен по следующим координатам:

драйвер Oracle JDBC теперь доступен в репозитории Oracle Maven (не в центре).

репозиторий Oracle Maven требует регистрации пользователя. Инструкции можно найти в:

1. Как найти репозиторий (если таковой имеется), содержащий этот артефакт?

если Вы читаете лицензионное соглашение OTN, вы найдете этот лицензионный термин:

вы не можете:
.
— распространять программы, если они не сопровождаются вашими приложениями;
.

так вот почему вы не удается найти банку драйвера в любом публичном репозитории Maven, потому что она будет распространяться в одиночку, и если это произойдет, это будет нарушением лицензии.

(или любая более поздняя версия) сделать Maven загружает ojdbc14-10.2.0.3.0.pom только, и в этом pom вы можете прочитать:

который информирует Вас о лицензии OTN.

2. Как добавить его, чтобы Maven использовал его?

для того, чтобы сделать выше зависимость работает я согласен с Виктор Гюго кто вам предлагал здесь чтобы вручную установить банку в локальный репозиторий Maven (

можно использовать Nexus для управления зависимостями сторонних производителей, а также зависимостями в стандартных репозиториях maven.

до сих пор невозможно использовать репозитории maven. Я использую ivy как инструмент управления зависимостями, но также использую репозитории ibiblio maven2. И это работает для Айви:

зависимость Maven2 может быть чем-то вроде этого:

некоторые продукты Oracle поддерживают публикацию артефактов maven в локальном репозитории. Продукты имеют каталог plugin / maven, который содержит описания, где найти эти артефакты и где их хранить. Существует плагин от Oracle, который фактически будет делать загрузку.

один из продуктов, который может отправить OJDBC таким образом, это WLS, он использует, однако, довольно странно координаты:

Я отправляю opensource под LGPLv2, и даже после нескольких разговоров по электронной почте с Oracle они были неясны, разрешили ли мне отправить их двоичный драйвер JDBC с моим дистрибутивом. Проблема заключалась в том, была ли моя лицензия совместима с их условиями OTN, поэтому они предположили, что мне не разрешили отправить водителя. Предположительно, связанные с этой частью

(b) распространять программы с приложениями, которые вы разработали для своих клиентов при условии, что каждый из них лицензиат соглашается с условиями лицензии в соответствии с условиями настоящего договор!—1—>

поэтому, даже если вам удастся опубликовать драйвер на законных основаниях в вашем эксклюзивном/локальном репозитории maven, по-прежнему существует ограничение на то, что вам разрешено делать с этим артефактом. Кажется абсурдным, что даже если я отправлю их драйвер в двоичной форме вместе с полным файлом лицензии OTN, я все еще не могу его использовать и должен заставить своих пользователей вручную загрузить драйвер Oracle и перейти в мой путь к библиотеке они могут использовать мою программу.

Читать еще:  Отбросить дробную часть javascript

существует одно РЕПО, которое предоставляет банку. В SBT добавьте распознаватель, подобный этому: «Oracle driver repo «at»http://dist.codehaus.org/mule/dependencies/maven2»

и зависимость: «oracle» % «ojdbc14» % «10.2.0.2»

Если вы используете Netbeans, зависимости goto и вручную устанавливаете артефакт. Найдите загруженный .jar-файл и все готово. чистая сборка решит любые проблемы.

вы можете найти простой пример проекта Github для использования драйвера Oracle JDBC в проекте Maven здесь.

вы можете найти все объяснения для вашей непрерывной интеграции + образец и запустить на Travis-CI.

  • пожалуйста, выполните следующие настройки, чтобы устранить ошибку

этот репозиторий должен быть включен для поиска зависимостей Oracle 10.0.3.0 (этот параметр необходимо выполнить в Buildconfig.отличный Граали.проект.зависимость.решатель = «плющ» / / или плющ

использовать следующие настройки для компиляции драйвер Oracle скачать

время выполнения » com.oracle: ojdbc: 10.2.0.3.0″

Это должно решить вашу проблему не поиск драйвера Oracle для приложения grails

Find Oracle JDBC driver in Maven repository

I want to add the oracle jdbc driver to my project as dependency (runtime scope) — ojdbc14. In MVNrepository site the dependency to put in the POM is:

of course this does’t work as it is not in the central repository used by maven. 2 questions:

How do I find a repository (if any) that contains this artifact?

How do I add it so that Maven will use it?

22 Answers 22

How do I find a repository (if any) that contains this artifact?

Unfortunately due the binary license there is no public repository with the Oracle Driver JAR. This happens with many dependencies but is not Maven’s fault. If you happen to find a public repository containing the JAR you can be sure that is illegal.

How do I add it so that Maven will use it?

Some JARs that can’t be added due to license reasons have a pom entry in the Maven Central repo. Just check it out, it contains the vendor’s preferred Maven info:

Once you’ve downloaded the JAR just add it to your computer repository with (note I pulled the groupId, artifactId and version from the POM):

The last parameter for generating a POM will save you from pom.xml warnings

If your team has a local Maven repository this guide might be helpful to upload the JAR there.

For whatever reason, I could not get any of the above solutions to work. (Still can’t.)

What I did instead was to include the jar in my project (blech) and then create a «system» dependency for it that indicates the path to the jar. It’s probably not the RIGHT way to do it, but it does work. And it eliminates the need for the other developers on the team (or the guy setting up the build server) to put the jar in their local repositories.

UPDATE: This solution works for me when I run Hibernate Tools. It does NOT appear to work for building the WAR file, however. It doesn’t include the ojdbc6.jar file in the target WAR file.

1) Create a directory called «lib» in the root of your project.

2) Copy the ojdbc6.jar file there (whatever the jar is called.)

3) Create a dependency that looks something like this:

Ugly, but works for me.

To include the files in the war file add the following to your pom

Download the jar and place it in your project src/lib . Now you can use the maven installer plugin.

Now you only have to execute mvn clean once and the oracle lib is installed in your local maven repository.

The Oracle JDBC Driver is now available in the Oracle Maven Repository (not in Central).

The Oracle Maven Repository requires a user registration. Instructions can be found in:

Update 2019-10-03

I noticed Spring Boot is now using the Oracle JDBC Driver from Maven Central.

For Gradle users, use:

There is no need for user registration.

Читать еще:  Как восстановить звук на компьютере windows xp

Update 2020-03-02

Oracle is now publishing the drivers under the com.oracle.database group id. See Anthony Accioly answer for more information. Thanks Anthony.

Oracle JDBC Driver compatible with JDK6, JDK7, and JDK8

Oracle JDBC Driver compatible with JDK8, JDK9, and JDK11

Oracle JDBC Driver compatible with JDK10 and JDK11

Oracle is now exposing a maven repository at maven.oracle.com However you need to be authenticated.

According to the comments in the blog post the ojdbc driver should be available at the following coordinates:

1. How do I find a repository (if any) that contains this artifact?

As DavidS has commented the line I quoted at the time I answered is no longer present in the current (at the time I’m writing now) OTN License Agreement agreement I linked. Consider this answer only for older version of the artifact, as the 10.2.0.3.0 and the like.

If you read the OTN License Agreement you find this license term:

You may not:
.
— distribute the programs unless accompanied with your applications;
.

so that’s why you can’t find the driver’s jar in any public Maven Repository, because it would be distributed alone, and if it happened it would be a license violation.

Adding the dependency:

(or any later version) make Maven downloads the ojdbc14-10.2.0.3.0.pom only, and in that pom you can read:

which informs you about the OTN License.

2. How do I add it so that Maven will use it?

In order to make the above dependency works I agree with victor hugo who were suggesting you here to manually install the jar into your local Maven repository (the .m2 directory) by running:

but I want to add that the license term above doesn’t limit only where you can’t find the JDBC jar, but it limits where you install it too!

In fact your local Maven repository must be private and not shared because if it was shared it would be a kind of distribution in which the jar is distributed alone, even if to a little group of people into your local area network, and this represent a OTN License Agreement violation.

Moreover I think you should avoid installing the JDBC jar in your corporation repository manager (such as Artifactory or Nexus) as a single artifact because if it was installed it would be still distributed alone, even if to people in your organization only, and this represents a OTN License Agreement violation.

Работа с БД с помощью JDBC

1. Утверждения (Statements)

Взаимодействовать с БД мы можем с помощью трёх интерфейсов, которые имплементируются каждым драйвером:

  1. Statement — этот интерфейс используется для доступа к БД для общих целей. Он крайне полезен, когда мы используем статические SQL – выражения во время работы программы. Этот интерфейс не принимает никаких параметров.
  2. PreparedStatement — этот интерфейс может принимать параметры во время работы программы.
  3. CallableStatement — этот интерфейс становится полезным в случае, когда мы хотим получить доступ к различным процедурам БД. Он также может принимать параметры во время работы программы.

2. Интерфейс Statement

После этого мы можем использовать наш экземпляр statement для выполнения SQL – запросов. Для этой цели интерфейс Statement имеет три метода, которые реализуются каждой конкретной реализацией JDBC драйвера:

  • boolean execute(String SQL) — позволяет вам выполнить Statement, когда неизвестно заранее, является SQL-строка запросом или обновлением. Метод возвращает true, если команда создала результирующий набор.
  • int executeUpdate(String SQL) используется для выполнения обновлений. Он возвращает количество обновленных строк. Для выполнения операторов INSERT, UPDATE или DELETE.
  • ResultSet executeQuery(String SQL) — используется для выполнения запросов (SELECT). Он возвращает для обработки результирующий набор.

Пример 1. Создание таблицы

3. Интерфейс ResultSet

Этот интерфейс представляет результирующий набор базы данных. Он обеспечивает приложению построчный доступ к результатам запросов в базе данных.

Во время обработки запроса ResultSet поддерживает указатель на текущую обрабатываемую строку. Приложение последовательно перемещается по результатам, пока они не будут все обработаны или не будет закрыт ResultSet.

Основные методы интерфейса ResultSet:

  1. public boolean absolute(int row) throws SQLException — метод перемещает курсор на заданное число строк от начала, если число положительно, и от конца — если отрицательно.
  2. public void afterLast() throws SQLException — этот метод перемещает курсор в конец результирующего набора за последнюю строку.
  3. public void beforeFirst() throws SQLException — этот метод перемещает курсор в начало результирующего набора перед первой строкой.
  4. public void deleteRow() throws SQLException — удаляет текущую строку из результирующего набора и базы данных.
  5. public ResultSetMetaData getMetaData() throws SQLException — предоставляет объект метаданных для данного ResultSet. Класс ResultSetMetaData содержит информацию о результирующей таблице, такую как количество столбцов, их заголовок и т.д.
  6. public int getRow() throws SQLException — возвращает номер текущей строки.
  7. public Statement getStatement() throws SQLException — возвращает экземпляр Statement, который произвел данный результирующий набор.
  8. public boolean next() throws SQLException, public boolean previous() throws SQLException — эти методы позволяют переместиться в результирующем наборе на одну строку вперед или назад. Во вновь созданном результирующем наборе курсор устанавливается перед первой строкой, поэтому первое обращение к методу next() влечет позиционирование на первую строку. Эти методы возвращают true, если остается строка для дальнейшего перемещения. Если строк для обработки больше нет, возвращается false.
  9. public void close() throws SQLException — осуществляет немедленное закрытие ResultSet вручную. Обычно этого не требуется, так как закрытие Statement, связанного с ResultSet, автоматически закрывает ResultSet.

Пример 2. Использование интерфейса ResultSet

4. Пакетное выполнение запросов

Для выполнения набора из нескольких запросов на обновление данных в интерфейс Statement были добавлены методы:

Читать еще:  Java api documentation на русском

Пакетное выполнение запросов уменьшает трафик между клиентом и СУБД и может привести к существенному повышению производительности.

Пример 3. Пакетное выполнение запросов

5. Интерфейс PreparedStatement

Особенностью SQL-выражений в PreparedStatement является то, что они могут иметь параметры. Параметризованное выражение содержит знаки вопроса в своем тексте. Например:

Перед выполнением запроса значение каждого вопросительного знака явно устанавливается методами setXxx()‏, например:

Использование PreparedStatement приводит к более быстрому выполнению запросов при их многократном вызове с различными параметрами.

Пример 4. Использование интерфейса PreparedStatement

Пример 5. Использование интерфейса PreparedStatement

6. Использование properties файлов

Пример 6. Содержимое database.properties файла

Пример 7. Использование ResourceBundle для чтения данных для аутентификации

7. Data access object (DAO)

В программном обеспечении data access object (DAO) — это объект, который предоставляет абстрактный интерфейс к какому-либо типу базы данных или механизму хранения. DAO может использоваться для разных видов доступа к БД (JDBC, JPA).

Работа с базами данных с помощью JDBC драйвера

В этом уроке я бы хотел вас научить работать с базами данных MySQL, PostgreSQL, Oracle. А именно как подключится и выполнять SQL запросы к базе с помощью java.

Что такое JDBC?

JDBC Driver – (Java DataBase Connectivity — соединение с базами данных на Java) — платформенно-независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД, реализованный в виде пакета java.sql , входящего в состав Java SE.

Зачем нужен JDBC?

JDBC – позволяет получать доступ к БД, а также выполнять к ней SQL запросы.

Шаг 1.

Скачиваем jar файл JDBC драйвера.

Шаг 2.

Подключение к БД Mysql:

Подключение к БД PostgreSQL:

Подключение к БД Oracle:

В 1-й строке мы указываем наш JDBC драйвер. Не забудьте добавить его в ClassPath иначе его компилятор его не увидит.
Во 2-й строке JDBC Manager который открывает соединение с базой данных и обеспечит нам дальнейшее обращение к ней.
И последняя строка закрывает соединение с БД.

Желательно строку для определения JDBC поместить в блок try для того чтобы контролировать его наличия в вашем приложении.

Шаг 3. Создание таблиц в БД.

Вынесем в отдельный метод соединение с БД.

Этот метод будет создавать в БД таблицу:

и в main методе вызываем метод createDbTable() который создаст таблицу в БД.

В результате вы должны получить:

Шаг 4. Добавление новой записи в БД.

метод который будет возвращать текущую дату и время:

И выполняем наш SQL запрос который лежит в переменной insertTableSQL

Шаг 5. Получение данных с БД.

Шаг 6. Удаление данных с БД.

Выполняем запрос на удаление:

Шаг 7. Обновление данных в БД.

Выполняем запрос на обновление записи:

Выводы.

Все действия с любой базой данных выполняются через SQL запросы, то есть нам достаточно знать SQL для манипуляцией данными в БД.

ПОХОЖИЕ ПУБЛИКАЦИИ

29 комментариев к статье «Работа с базами данных с помощью JDBC драйвера»

Проблема с подключением jdbc к приложению для Android – заголовок комментария.

Почему в жизни так бывает …

строка Connection connection = DriverManager.getConnection(“jdbc:postgresql://хост:порт/имя_дб”,”пользователь”, “пароль”);
выдаёт ошибку Unhandled exception type SQLException
( строка connection.close(); – выдаёт туже ошибку )

При добавлении строки import java.sql.SQLException; в MainActivity.java
выводит сообщение …
The import java.sql.SQLException is never used

При этом файл postgresql-9.2-1002.jdbc4.jar лежит в /libs

И в classpath добавлять пробовал, хотя многие источники говорят, что это не обязательно, достаточно держать файл postgresql-9.2-1002.jdbc4.jar в /libs

При нажатие ctrl+shift+O Eclips добавляет только:

Ссылка на основную публикацию
Adblock
detector