Простой пример JDBC для начинающих / Хабр

RomeoLord

Время на прочтение 2 мин

Количество просмотров

84K

Java *

Recovery mode

Здравствуйте! В этой статье я напишу простой пример соединения с базами данных на Java.Эта статья предназначена новичкам.Здесь я опишу каждую строчку объясню что зачем.

Но для начала немного теории.

JDBC (Java DataBase Connectivity — соединение с базами данных на Java) предназначен для взаимодействия Java-приложения с различными системами управления базами данных (СУБД). Всё движение в JDBC основано на драйверах которые указываются специально описанным URL.

А теперь практика.

Для начала создаём maven проект и в pom.xml помещаем зависимость для соединения с СУБД (В моём случае СУБД будет выступать MySQL):

<!-- https://mvnrepository.
com/artifact/mysql/mysql-connector-java --> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> </dependencies>

Должно получится так:

Дальше подключаемся к базе данных нужной вам(я пользуюсь IDEA Ultimate по этому я подключаюсь именно так).

Дальше заполняем Database, User и Password.Обязательно проверяем соединение.

Дальше мы создаём сам класс.

А теперь разберём его построчно:

В начале мы создаём три переменные url,username и password. Образец указания url:

Username по умолчанию root.Password вы должны знать сами.

После с помощью строчки Class.forName(«com.mysql.jdbc.Driver») регестрируем драйвера. Дальше устанавливаем соединение с помощью DriverManager.getConnection (ваш url, username, password).

После с помощью connection (соединения) создаём простой запрос Statement методом createStatement().

Дальше создаём экземпляр класса ResultSet и формируем запрос через statement методом executeQuery (запрос).

Дальше мы заставляем пробежаться resultSet по всей базе данных и вывести то что нам нужно. Так с помощью объекта resultSet и его методов (getString,getInt и т.д. в зависимости от типа переменных в колонке) мы выводим.Так как мой запрос был для того что бы вывести всё, мы можем вывести любую колонку.

После закрываем resultSet,statement и connection (именно в такой последовательности). В процессе он будет показывать ошибки так как будет запрашивать обработку исключений в catch.Так что пишите catch заранее.

Теперь когда практика есть на неё можно наложить более глубокую теорию.Тема правда очень большая, желаю удачи в её изучении.

Этот проект на github тут.

Теги:

  • java
  • jdbc
  • mysql

Хабы:

  • Java

Всего голосов 30: ↑9 и ↓21 -12

Комментарии 12

Роман Лукашенко @RomeoLord

Школьник

Драйвер MySQL JDBC — документация SuperSTAR

JDBC (Java Database Connectivity) — это программный интерфейс, позволяющий Java-приложениям получать доступ к реляционной базе данных.

SuperCHANNEL требуется драйвер JDBC, чтобы он мог получить доступ к системе реляционной базы данных (например, SQL Server, Oracle и т. д.), где хранятся ваши исходные данные.

Перед запуском SuperCHANNEL необходимо установить соответствующий драйвер JDBC и настроить SuperCHANNEL, чтобы он мог получить доступ к этому драйверу.

В большинстве случаев драйверы JDBC предоставляются поставщиками баз данных; они не поставляются с SuperCHANNEL.

Если ваши исходные данные хранятся в базе данных MySQL, вам необходимо настроить SuperCHANNEL для использования драйвера MySQL JDBC.

Шаг 1. Загрузка и установка драйвера

  1. Драйвер MySQL jdbc называется Connector/J . Загрузите последнюю версию с https://www.mysql.com/downloads/connector/j/

  2. . Извлеките файл драйвера из загрузки. Файл драйвера .jar и будет называться примерно так: mysql-connector-java-5.1.7-bin.jar
  3. SuperCHANNEL может получить доступ к файлу драйвера из любой точки вашей системы, но вам рекомендуется скопировать его в каталог драйверов в вашей установке SuperCHANNEL. Если вы выбрали параметры установки по умолчанию, расположение будет следующим: C:\Program Files\STR\SuperCHANNEL\jar\drivers

Шаг 2. Отредактируйте конфигурацию SuperCHANNEL

  1. Найдите файл конфигурации SuperCHANNEL, config.txt . Если вы выбрали параметры установки по умолчанию, этот файл будет находиться в папке C:\ProgramData\STR\SuperCHANNEL\bin
  2. . Откройте config.txt в текстовом редакторе.
  3. Найдите строку, определяющую свойство пути к классу Java ( java.class.path= ), и добавьте следующее в конец определения:

     $(SNU_PROGRAM_HOME)\jar\drivers\mysql-connector- java-5.1.7-bin.jar; 

    Вам нужно будет заменить  mysql-connector-java-5.1.7-bin.jar на имя файла установленного вами драйвера. Каждая запись в определении пути к классу Java должна быть разделена точкой с запятой.

  4. Найдите строку, определяющую свойство jdbc.drivers , и добавьте в конец определения следующее: отделяться двоеточием.

  5. Сохранить config.txt .

В следующем примере показаны два дополнения к файлу конфигурации:

Шаг 3. Запустите SuperCHANNEL

Запустите SuperCHANNEL, выберите File > Connect to Source и используйте следующую строку подключения для подключения к MySQL:

 jdbc:mysql://:/ 

Где:

  • — имя вашего хоста для MySQL
  • — это порт для связи с MySQL (по умолчанию 3306).
  • — это имя исходной базы данных, к которой необходимо подключиться.

Вам также потребуется предоставить учетные данные пользователя (для аутентификации MySQL):

Примечание об обратном канале в MySQL

Если вы используете обратный канал (например, вы выполняете канал из базы данных SXV4 в MySQL), то нужно указать RelaxAutoCommit переключатель в строке подключения. Например:

 jdbc:mysql://127.0.0.1:3306/MyDatabase?relaxAutoCommit=true 

Возможность использования обратного канала зависит от структуры базы данных.

Шаг 4. Обновление пути к классу SNU

Вам также может потребоваться добавить драйвер в путь к классу SNU. Этот шаг требуется только в том случае, если:

  • Вы сохранили JAR-файл драйвера не в каталоге драйверов SuperCHANNEL ; и
  • Вы собираетесь запустить SuperCHANNEL из командной строки или с помощью сценария с помощью SNU, утилиты командной строки SuperCHANNEL.

Путь к классу SNU определен в snu.bat

. По умолчанию этот файл находится в папке C:\ProgramData\STR\SuperCHANNEL\bin

Найдите следующий раздел:

 "%JAVA_HOME%\bin\java" %JAVA_OPTS% -Xmx%SNU_JVM_HEAP%
    -classpath "%CLASSPATH%;. ;%SNU_PROGRAM_HOME%\jar\*;%SNU_PROGRAM_HOME%\jar\drivers\*;%SNU_PROGRAM_HOME%\jar\channel\*"
    "-Djava.library.path=%SNU_PROGRAM_HOME%\bin" "-Dsxv4driver.home=%SNU_DATA_HOME%\bin"
    "-Dsnu.data.home=%SNU_DATA_HOME%" "-Dsnu.program.home=%SNU_PROGRAM_HOME%" str.snu.snu %1 %2 %3 %4 %5 %6 %7 %8 %9

Чтобы использовать SNU с этим источником, параметр -classpath должен включать расположение вашего драйвера. Как видите, путь к классу уже включает все файлы в каталоге %SNU_PROGRAM_HOME%\jar\drivers\, поэтому этот шаг требуется только в том случае, если вы сохранили драйвер в другом месте.

Добавьте расположение драйвера в путь к классу. Например:

 "%JAVA_HOME%\bin\java" %JAVA_OPTS% -Xmx%SNU_JVM_HEAP%
    -classpath "%CLASSPATH%;.;%SNU_PROGRAM_HOME%\jar\*;%SNU_PROGRAM_HOME%\jar\drivers\*;%SNU_PROGRAM_HOME%\jar\channel\*;E:\drivers\mysql-connector-java-5.
1. 7-бин.банка" "-Djava.library.path=%SNU_PROGRAM_HOME%\bin" "-Dsxv4driver.home=%SNU_DATA_HOME%\bin" "-Dsnu.data.home=%SNU_DATA_HOME%" "-Dsnu.program.home=%SNU_PROGRAM_HOME%" str.snu.snu %1 %2 %3 %4 %5 %6 %7 %8 %9

Дополнительные сведения об использовании MySQL с SuperCHANNEL

Ниже приведена дополнительная информация, если вы используете MySQL с SuperCHANNEL. Ниже приведены только рекомендации, и их необходимо будет пересмотреть в конкретных обстоятельствах.

Установка MySQL
  • Установите программное обеспечение в соответствии с инструкциями и указаниями программы установки.
  • При появлении запроса избегайте использования модели механизма InnoDB. Используйте движок MyISAM.
  • При настройке экземпляра сервера с помощью мастера настройки:
    • Выберите «Подробную настройку» (не «Стандартную»).
    • Выберите для настройки «Серверный компьютер» (не «Разработчик» или «Выделенный»).
    • Выберите вариант использования «Только нетранзакционная база данных» (не транзакционная или многофункциональная).
  • При указании одновременных подключений выберите вариант использования «Ручная настройка» и установите количество одновременных подключений на 5.
  • Для параметров сети выберите «Включить сеть TCP/IP» и используйте порт по умолчанию 3306.
  • Для режима SQL активируйте параметр «Включить строгий режим».
  • Для набора символов по умолчанию выберите «ASCII»
  • Для параметров Windows выберите «Установить как службу Windows».
  • В параметрах безопасности задайте административный пароль root.
Конфигурация после установки

В файле my.ini или 9 есть некоторые параметры настройки.0017 my.cnf (Linux) файл конфигурации, который необходимо настроить. Некоторые из этих изменений улучшают производительность канала, а некоторые (например, установка режима SQL для использования кавычек ANSI) являются обязательными изменениями.

Файл конфигурации находится в каталоге данных программы MySQL (например:

C:\ProgramData\MySQL\MySQL Server 5. 6 в Windows или /etc/mysql/ в Linux.

Открыть my.ini / my.cnf в текстовом редакторе и проверьте следующие переключатели. При необходимости измените их. Эти параметры приведены только для справки, и вы можете обнаружить, что им нужны другие значения в соответствии с характеристиками вашей базы данных.

  • В разделе [mysqld] добавьте следующие ключи.

    имена таблиц в нижнем регистре = 0 default-character-set=ascii

    Значение по умолчанию в Windows для параметра lower-case-table-names равно 1, что означает, что MySQL будет преобразовывать все имена таблиц в нижний регистр при хранении и поиске. Если вы не измените этот параметр, таблицы реестра SuperCHANNEL не будут работать правильно. Изменение этого параметра на 0 настраивает MySQL на использование регистра, указанного при создании таблицы и базы данных. Обратите внимание, что после изменения этого параметра вы всегда должны использовать точный регистр для доступа к именам таблиц, иначе может произойти повреждение индекса. См. документацию MySQL для получения дополнительной информации.

  • Также необходимо установить режим MySQL SQL для использования кавычек ANSI.

    Если этого не сделать, код SQL, сгенерированный SuperCHANNEL, завершится ошибкой, и при попытке направить базу данных вы увидите сообщения об ошибках, подобные приведенным ниже:

     com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса для использования рядом с «F_Accounts» в строке 1 

    Чтобы предотвратить эту проблему, проверьте раздел [mysqld] и убедитесь, что параметр sql-mode включает ANSI_QUOTES :

     # Установите режим SQL на строгий
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ANSI_QUOTES" 
Дополнительная настройка конфигурации при переходе из больших баз данных

По умолчанию MySQL загружает весь результирующий набор в память, что может создать проблемы при переходе из очень больших баз данных базы данных. Обходной путь для этой проблемы — изменить настройку в SuperCHANNEL 9.0017 config.txt Файл конфигурации.

Если вы столкнулись с этой проблемой, задайте для свойства jdbc.resultset.fetchsize значение -2147483648 . Это даст указание SuperCHANNEL загружать записи по одной, что будет медленнее, но позволит завершить сборку.

Загрузка файлов JAR mysql со всеми зависимостями

Поиск файлов JAR по имени класса


mysql-connector-java из группы mysql (версия 8.0.33)

Группа: mysql Артефакт: mysql-connector-java

Не загружен файл JAR. Загрузка невозможна! Пожалуйста, выберите другую версию.

40641 загрузок

Артефакт mysql-connector-java
Группа mysql
Версия 8.0.33

0 Март 20018 Последнее обновление 04.0018 Организация не указан
URL-адрес не указан
Лицензия не указана
Количество зависимостей 0
Зависимости Нет зависимостей
Возможны транзитивные зависимости!


mysql-connector-java из группы mysql (версия 8.

0.32)

Группа: mysql Артефакт: mysql-connector-java

Файл JAR не загружен. Загрузка невозможна! Пожалуйста, выберите другую версию.

40641 загрузок

Артефакт mysql-connector-java
Группа mysql
Версия 8.0.32
Последнее обновление 07. Декабрь 2022
Организация не указано
URL Не указано
Лицензия не указано
1 7 Количество зависимостей 0

Нет зависимостей
Возможно есть транзитивные зависимости!


mysql-connector-java из группы mysql (версия 8.0.31)

Группа: mysql Артефакт: mysql-connector-java

Не загружен файл JAR. Загрузка невозможна! Пожалуйста, выберите другую версию.

40641 загрузок

Артефакт mysql-connector-java
Группа mysql
Версия 8. 0.31
Последнее обновление 04.2018 0 4 сентября 93018 0017 Организация не указан
URL-адрес не указан
Лицензия не указана
Количество зависимостей 0
Зависимостей Нет зависимостей
Возможны транзитивные зависимости!


mysql-connector-java из группы mysql (версия 8.0.30)

Драйвер JDBC Type 4 для MySQL

Группа: mysql Артефакт: mysql-connector-java
Показать источник


40641 загрузок

2 Art

0018 mysql-connector-java
Группа mysql
Версия 8.0.30
Последнее обновление 01 июля 2022 г.
Теги: драйвер jdbc mysql type
Организация Корпорация Oracle
URL-адрес http://dev/connector-mysql.com ан/
Лицензия Стандартная общественная лицензия GNU, v2 с исключением FOSS
Количество зависимостей 1
Зависимости protobuf-java,
Возможны транзитивные зависимости!


mysql-connector-java из группы mysql (версия 8.

0.29)

Драйвер JDBC Type 4 для MySQL

Группа: mysql Артефакт: mysql-connector-java
Показать источник

90 390 002 40641 загрузок

Артефакт mysql-connector-java
Группа mysql
Версия 8.0.29
Последнее обновление 8 марта 2022 г. Организация Корпорация Oracle
URL-адрес http ://dev.mysql.com/doc/connector-j/en/
Лицензия Стандартная общественная лицензия GNU, v2 с исключением FOSS
Количество зависимостей 1
Зависимости protobuf-java,
Возможно, есть транзитивные зависимости!


mysql-connector-java из группы mysql (версия 8.0.28)

Драйвер JDBC Type 4 для MySQL

Группа: mysql Артефакт: mysql-connector-java
Показать исходный код

490 390 002 40641 загрузок

Артефакт mysql-connector-java
Группа mysql
Версия 8. 0.28
Последнее обновление 16. Декабрь 2021
Теги: тип драйвера jdbc mysql
Организация Корпорация Oracle
URL-адрес http://dev.mysql.com/doc/connector-j/en/
Лицензия Стандартная общественная лицензия GNU, v2 с исключением FOSS
Сумма зависимостей 1
Зависимости protobuf-java,
Возможно есть транзитивные зависимости!


mysql-connector-java из группы mysql (версия 8.0.27)

Драйвер JDBC Type 4 для MySQL

Группа: mysql Артефакт: mysql-connector-java
Показать источник


40641 загрузок

Артефакт Группа

    9004-04-java mysql-04-java 018 mysql
    Версия 8.0.27
    Последняя обновление 28 сентября 2021 г.
    Теги: тип драйвера jdbc mysql
    Организация Корпорация Oracle
    URL http://dev. mysql.com/doc/connector-j/en/
    Лицензия Стандартная общественная лицензия GNU, v2 с исключением FOSS
    Количество зависимостей 1
    Зависимости protobuf-java,
    Возможно, есть транзитивные зависимости!


    mysql-connector-java из группы mysql (версия 8.0.26)

    Группа: mysql Артефакт: mysql-connector-java
    Показать исходный код

     

      2 загрузок 4

      2 03

      mysql-коннектор- java из группы mysql (версия 8.0.25)

      Драйвер JDBC Type 4 для MySQL

      Группа: mysql Артефакт: mysql-connector-java
      Показать источник


      40641 загрузок

      2 Art

      0018 mysql-connector-java
      Группа mysql
      Версия 8.0.25
      Последнее обновление 27.