Простой пример 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.Обязательно проверяем соединение.
Дальше мы создаём сам класс.
А теперь разберём его построчно:
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. Загрузка и установка драйвера
Драйвер MySQL jdbc называется Connector/J . Загрузите последнюю версию с https://www.mysql.com/downloads/connector/j/
- . Извлеките файл драйвера из загрузки. Файл драйвера .jar и будет называться примерно так: mysql-connector-java-5.1.7-bin.jar
SuperCHANNEL может получить доступ к файлу драйвера из любой точки вашей системы, но вам рекомендуется скопировать его в каталог драйверов в вашей установке SuperCHANNEL. Если вы выбрали параметры установки по умолчанию, расположение будет следующим: C:\Program Files\STR\SuperCHANNEL\jar\drivers
Шаг 2. Отредактируйте конфигурацию SuperCHANNEL
- Найдите файл конфигурации SuperCHANNEL, config.txt . Если вы выбрали параметры установки по умолчанию, этот файл будет находиться в папке C:\ProgramData\STR\SuperCHANNEL\bin
- . Откройте config.txt в текстовом редакторе.
Найдите строку, определяющую свойство пути к классу 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 должна быть разделена точкой с запятой.Найдите строку, определяющую свойство
jdbc.drivers
, и добавьте в конец определения следующее: отделяться двоеточием.Сохранить config.txt .
В следующем примере показаны два дополнения к файлу конфигурации:
Шаг 3. Запустите SuperCHANNEL
Запустите SuperCHANNEL, выберите File > Connect to Source и используйте следующую строку подключения для подключения к MySQL:
jdbc:mysql://: /
Где:
Вам также потребуется предоставить учетные данные пользователя (для аутентификации 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
Найдите следующий раздел:
"%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 (например:
Открыть my.ini / my.cnf в текстовом редакторе и проверьте следующие переключатели. При необходимости измените их. Эти параметры приведены только для справки, и вы можете обнаружить, что им нужны другие значения в соответствии с характеристиками вашей базы данных.
В разделе
[mysqld]
добавьте следующие ключи.Значение по умолчанию в 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
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
Показать источник
Артефакт 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
Показать исходный код
Артефакт 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 03mysql-коннектор- 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.