Перейти к содержимому

Как создать базу данных в sql java

  • автор:

Java и базы данных

Для хранения данных мы можем использовать различные базы данных — Oracle, MS SQL Server, MySQL, Postgres и т.д. Все эти системы упраления базами данных имеют свои особенности. Главное, что их объединяет это взаимодействие с хранилищем данных посредством команд SQL. И чтобы определить единый механизм взаимодействия с этими СУБД в Java еще начиная с 1996 был введен специальный прикладной интерфейс API, который называется JDBC .

То есть если мы хотим в приложении на языке Java взаимодействовать с базой данных, то необходимо использовать функциональные возможности JDBC. Данный API входит в состав Java (на текущий момент это версия JDBC 4.3), в частности, для работы с JDBC в программе Java достаточно подключить пакет java.sql . Для работы в Java EE есть аналогичный пакет javax.sql , который расширяет возможности JDBC.

Однако не все базы данных могут поддерживаться через JDBC. Для работы с определенной СУБД также необходим специальный драйвер. Каждый разработчик определенной СУБД обычно предоставляет свой драйвер для работы с JDBC. То есть если мы хотим работать с MySQL, то нам потребуется специальный драйвер для работы именно MySQL. Как правило, большиство драйверов доступны в свободном доступе на сайтах соответствующих СУБД. Обычно они представляют JAR-файлы. И преимущество JDBC как раз и состоит в том, что мы абстрагируемся от строения конкретной базы данных, а используем унифицированный интерфейс, который един для всех.

JDBC и работа с базой данных в Java

Для взаимодействия с базой данных через JDBC используются запросы SQL. В то же время возможности SQL для работы с каждой конкретной СУБД могут отличаться. Например, в MS SQL Server это T-SQL, в Oracle — это PL/SQL. Но в целом эти разновидности языка SQL не сильно отличаются.

Особенности запуска программы

На процесс компиляции необходимость работы с БД никак не сказывается, но влияет на процесс запуска программы. При запуске программы в командной строке необходимо указать путь к JAR-файлу драйвера после параметра -classpath .

java -classpath путь_к_файлу_драйвера:путь_к_классу_программы главный_класс_программы

Например, в папке C:\Java располагаются файл программы — Program.java, скомпилированный класс Program и файл драйвер, допустим, MySQL — mysql-connector-java-8.0.11.jar. Для выполнения класса Program мы можем использовать следующую команду:

java -classpath c:\Java\mysql-connector-java-8.0.11.jar;c:\Java Program

Если C:\Java является текущим каталогом, то мы можем сократить команду:

java -classpath mysql-connector-java-8.0.11.jar;. Program

В принципе мы можем и не использовать параметр -classpath, и запустить програму на выполнение обычным способом с помощью команды «java Program». Но в этом случае путь к драйверу должен быть добавлен в переменную Path.

Как создать базу данных в sql java

Вначале создадим на сервере MySQL пустую базу данных, которую назовем store и с которой мы будет работать в приложении на Java. Для создания базы данных применяется выражение SQL:

CREATE DATABASE store;

Его можно выполнить либо из консольного клиента MySQL Command Line Client, либо из графического клиента MySQL Workbench, которые устанавливются вместе с сервером MySQL. Подробнее про создание базы данных можно прочитать в статье Создание и удаление базы данных.

Для подключения к базе данных необходимо создать объект java.sql.Connection . Для его создаия применяется метод:

Connection DriverManager.getConnection(url, username, password)

Метод DriverManager.getConnection в качестве параметров принимает адрес источника данных, логин и пароль. В качестве логина и пароля передаются логин и пароль от сервера MySQL. Адрес локальной базы данных MySQL указывается в следующем формате: jdbc:mysql://localhost/название_базы данных

Пример создания подключения к созданной выше локальной базе данных store:

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/store", "root", "password");

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

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/store", "root", "password"); // работа с базой данных connection.close();

Либо мы можем использовать конструкцию try :

try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/store", "root", "password")) < // работа с базой данных >

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

При подключении к базе данных MySQL мы можем столкнуться с рядом проблем. Например, определим следующий код подключения:

import java.sql.Connection; import java.sql.DriverManager; public class Program < public static void main(String[] args) < try< String url = "jdbc:mysql://localhost/store"; String username = "root"; String password = "password"; Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance(); try (Connection conn = DriverManager.getConnection(url, username, password))< System.out.println("Connection to Store DB succesfull!"); >> catch(Exception ex) < System.out.println("Connection failed. "); System.out.println(ex); >> >

Даже если указаны правильно адрес базы данных, логин, пароль, мы все равно можем столкнуться с ошибками:

timezone in java connection to mysql

Из консольного вывода видно, что проблема заключается с SSL и часовым поясом. Чтобы решить данную проблему, необходимо указать в адресе подключения часовой пояс бд и параметры для использования ssl. В частности, я указываю, что SSL не будет использоваться и что часовым поясом будет московский часовой пояс:

String url = "jdbc:mysql://localhost/store?serverTimezone=Europe/Moscow&useSSL=false";

Параметры подключения указываются после вопросительного знака после названия базы данных. Параметр serverTimezone указывает на название часового пояса сервера бд. В данном случае «Europe/Moscow», cписок всех допустимых названий часовых поясов можно найти на странице https://gist.github.com/kinjal/9105369. И параметр useSSL=false указывает, что SSL не будет применяться.

Файлы конфигурации

Мы можем определить все данные для подключения непосредственно в программе. Однако что если какие-то данные были изменены? В этом случае потребуется перекомпиляция приложения. Иногда это не всегда удобно, например, отсутствует досуп к исходникам, или перекомпиляция займет довольно продолжительное время. В этом случае мы можем хранить настройки в файле.

Так, создадим в папке программы новый текстовый файл database.properties , в котором определим настройки подключения:

url = jdbc:mysql://localhost/store?serverTimezone=Europe/Moscow&useSSL=false username = root password = password

Загрузим эти настройки в программе:

import java.sql.*; import java.nio.file.*; import java.io.*; import java.util.*; public class Program < public static void main(String[] args) < try< Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance(); try (Connection conn = getConnection())< System.out.println("Connection to Store DB succesfull!"); >> catch(Exception ex) < System.out.println("Connection failed. "); System.out.println(ex); >> public static Connection getConnection() throws SQLException, IOException < Properties props = new Properties(); try(InputStream in = Files.newInputStream(Paths.get("database.properties")))< props.load(in); >String url = props.getProperty("url"); String username = props.getProperty("username"); String password = props.getProperty("password"); return DriverManager.getConnection(url, username, password); > >

Java и базы данных — все от А до Я

В процессе работы Java может взаимодействовать с таблицами, файлами, базами данных. Последним и будет уделено внимание в статье далее. При помощи JDBC удается справиться с различными вопросами при написании сложного софта.

Особенности Джавы в программировании

Джава – язык программирования, который появился в 1995 году. С тех пор он перетерпел множество доработок и нововведений. Совершенствуется по сей день. Образовал отдельное семейство J-языков. Все они начали привлекать современных программистов.

Хотя Джава является относительно старым способом общения с аппаратным и программным обеспечением, это – идеальный вариант для разработчиков. Применяется при создании:

  • веб-софта (основное направление);
  • игр и развлекательного контента;
  • сложных приложений.

Предусматривает следующие особенности:

  • относительно простой синтаксис;
  • отсутствие необходимости долгого изучения – даже новичок быстро разберется с Java;
  • собственный движок;
  • функциональность;
  • кроссплатформенность – перенести софт с одной ОС на другую не составит никакого труда.

С Java работают разного рода движки и библиотеки. Основной принцип языка звучит как «меньше кода – больше действий». И JDBC существенно упрощают написание сложных кодификаций в том или ином случае. Главное знать, как работать с этим элементом.

Основные понятия – что пригодится программисту

Чтобы получить на выходе при коддинге качественный контент, его нужно уметь записывать. Для этого разработчику требуется использовать весь функционал языка в правильном, грамотном направлении. И подключать JDBC в том числе.

Перед началом изучения БД и их подключения к Джаве, каждый программер должен запомнить несколько терминов. С соответствующими понятиями он будет сталкиваться повсеместно. И не только в Java, но и при задействовании иных языков.

Запомнить рекомендуется следующую информацию:

  • API – своеобразный набор правил, принципов, процедур и протоколов для создания контента (помогают «общаться» со службами из вне);
  • алгоритмы – правила и инструкции, необходимые для решения тех или иных вопросов;
  • символ – минимальная единица информации, равная одной буквенной записи;
  • объект – несколько связанных между собой переменных, констант, а также иных структур данных, способных быть выбранными и проходить совместную обработку;
  • класс – набор свойств объектов с общими «чертами» (шаблон, описывающий поведение тех или иных элементов в коде);
  • массив – список/группа схожих типов значений информации, подлежащая объединению в единое целое;
  • переменная – место хранилища информации;
  • оператор – элемент программного кода, способный манипулировать операндами;
  • операнд – объекты, которыми можно управлять через всевозможные операторы;
  • метод – функция или процедура, которая принадлежит к тому или иному объекту (действия, присущие внутри заданного класса или элемента кодификации).

Теперь можно более углубленно рассматривать JDBC и базы данных в Джаве. Перечисленные термины – это база, о которой должен знать каждый потенциальный разработчик. И не важно, какой именно «способ общения» с ПО и «железом» выбран.

БД – определение

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

База данных – место, где хранится та или иная информация. Она должна относиться к структурированному типу, в противном случае целесообразно говорить о BigData. Использовать имеющиеся электронные сведения предлагается посредством специальных языковых запросов.

Бд отвечают не только за хранение, но и за обработку, корректировку, вывод данных. Так принято называть файл или их группу стандартной структуры. Наглядный и элементарный пример – таблицы Excel.

Система управления

Для использования и управления рассматриваемым объектом в информационных технологиях используются специальные системы. Называются СУБД. Представлены программным обеспечением, отвечающим за взаимодействие внешних приложений с информацией, а также дополнительными службами. К последним относят:

  • восстановление;
  • копирование резервного характера;
  • журналирование;
  • иные служебные операции.

Отличительной чертой является то, что взаимодействие обеспечивается специальными запросами. Оные задействованы в базах данных.

Разновидности СУБД

Пользователь может выбрать одну из нескольких СУБД для дальнейшей работы. Каждый вид оных имеет собственные сильные и слабые стороны.

Сегодня Java предлагает следующую классификацию систем управления БД по методу организации хранения информации:

  1. Иерархические. Структура представляет собой своеобразное дерево. Пример – файловые системы, начинающиеся с корневой папки дисков.
  2. Сетевые. Это – откорректированные иерархические. Каждый узел может обладать несколькими «родителями».
  3. Объектно-ориентированные. Здесь все материалы электронного типа организованы как классы или объекты с атрибутами и принципами взаимодействия по законам ООП.
  4. Реляционные. Представлены таблицами. Они могут иметь связь между собой. Информация здесь имеет структурированный характер.

В Java JDBC лучше всего останавливаться на последнем варианте. Реляционные «хранилища электронных материалов» на практике распространены больше остальных. На их основе составление приложений с JDBC не доставит существенных хлопот.

Языки запросов

Для того, чтобы похвастаться хорошими результатами работы с БД в программировании, важно не только знать основы работы с ними, но и наиболее популярные «хранилища информации». Каждый вариант имеет собственные нюансы и особенности, отражающиеся при коддинге.

Сегодня при написании программ чаще всего используются такие базы, как:

  1. MySQL – СУБД Oracle. Является бесплатной. Работает как на Linux, так в Windows. Имеет высокую производительность, если использовать при узком круге поставленных задач. Выступает в качестве функционально простого варианта. MySQL применяется на практике в узком спектре задач. Встречается преимущественно в мелких и средних разработках.
  2. Oracle – первый настоящий вариант СУБД. Написан на Ассемблере. Изначально имел поддержку исключительно базовых свойств SQL. Имеет отличную сетевую производительность, а также автоматическую оптимизацию. Обладает поддержкой подключаемых «сторонних» БД и живую миграцию. Хорошо производит сжатие электронных материалов. Используется в различных операционных системах.
  3. SQL – вариант, увидевший свет в 90-х. Разработчиком выступила компания Microsoft. С самого момента возникновения соответствующий вариант служит для работы с БД в Windows и продуктах Майкрософт. Имеет облачные технологии, резервное копирование, гибридные решения облачного типа. Отлично подходит для бизнес-аналитики.

Для того, чтобы задействовать соответствующие варианты в программном коде Java, требуется освоить так называемый JDBC. С ним будут работать все программеры, желающие заниматься внедрением информационных хранилищ в собственные приложения.

JDBC – это…

JDBC расшифровывается как Java DataBase Connectivity. Говоря дословно – соединения с «хранилищами электронных структурированных материалов» в Джаве. Это – платформенно-независимый стандарт. Используется для того, чтобы обеспечивать взаимодействие Java-контента со всевозможными СУБД.

Имеет реализацию в виде пакета java.sql. Он включен в состав Java SE. В первом ряду при работе с соответствующим элементом выступает SQL. Но и MySQL тоже весьма хорошо функционирует вместе с JDBC.

Принцип подключения – к БД и драйверам

JDBC в своей основе имеет концепцию драйверов. Driver позволяет получать соединение (getconnection) с БД. Для реализации поставленной задачи задействуют специальные URL-адреса.

Драйверы заключаются динамически (тогда, когда используемая утилита функционирует). Алгоритм «активации» будет следующим:

  1. Происходит загрузка софта.
  2. Драйвер инициализируется и загружается.
  3. Осуществляется самостоятельная регистрация drivers.
  4. Вызов производится «автоматом». Это происходит тогда, когда используемое приложение требует URL с протоколом, за который отвечают драйверы.

JDBC использует экземпляры классов java.sql. После того, как это было сделано, происходит передача тех или иных команд для корректировки информации. JDBC посредством драйверов взаимодействует с СУБД и выводит тот или иной результат.

Принцип работы с БД

JDBC работает с «электронными хранилищами информации» через специальные запросы. О них необходимо знать каждому потенциальному разработчику до того, как будет рассмотрен образец применения БД на практике в приложении.

Java и базы данных — все от А до Я

После установления connections происходит import java information. Система получает запрос и создает специальный объект для его последующей передачи. Завершающий этап работы JDBC – это закрытие всех имеющихся соединений.

Драйверы и URL для баз информации

Ниже представлена таблица, которая поможет новичкам лучше ориентироваться в JDBC. Это – шаблоны, используемые при написании программных кодификаций.

Java и базы данных — все от А до Я

Теперь можно try working с БД через JDBC. Это – наиболее простой и распространенный поход.

Активная работа через JDBC

Взаимодействие с хранилищами электронных структурированных материалов может осуществляться в Java при помощи main interfaces. Возможны три варианта развития событий. Select one осуществляется с учетом того, что каждый подход реализуется всеми драйверами и имеет ряд нюансов.

Выбор предоставляется из следующих интерфейсов:

  1. Statement. Задействован для доступа к БД при решении общих вопросов. Активно применяется на практике со static SQL. А именно – выражениями во время функционирования утилиты. Не принимает параметры.
  2. PreparedStatement. Интерфейс, напоминающий предыдущий. Способен принимать различные параметры.
  3. CallableStatement. Помогает заполучить доступ к разнообразным процедурам «хранилищ структурированных данных». Как и предыдущий вариант, принимает параметры в процессе функционирования контента.

Далее каждый вариант будет рассмотрен более подробно. Для каждого имеется свой example применения.

Интерфейс Statement

Для того, чтобы создать объект, используют команду типа:

Statement statement = connection.createstatement();

Экземпляр можно будет задействовать для обработки SQL-запросов. Интерфейс для реализации задачи имеет три метода, который реализуются конкретикой в JDBC:

  1. Boolean execute (String SQL) – выполняет statement, если заранее не ясно, является ли строка запросом или же это своеобразное обновление. Возвращаемое значение True будет, когда за счет команды был создан результирующий набор.
  2. Int (public void) executeUpdate (строка SQL). Отвечает за обновления. Возвращает количество обновленных строк. Задействованы операторы Delete, Update и Insert.
  3. ResultSet executeQuery – выполняет запросы (select). Отвечает за возврат обработки результирующего набора.

Для того, чтобы работать с БД в Java, необходимо уметь хоть немного программировать на соответствующем языке.

Java и базы данных — все от А до Я Java и базы данных — все от А до Я

Выше представлен код примера создания таблицы. На него могут опираться как новички, так и продвинутые разработчики.

Интерфейс ResultSet

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

Вот методы, с которыми работает ResultSet:

Java и базы данных — все от А до Я

Также есть public void close() throws SQLExceptions, который позволяет закрывать ResultSet вручную. А вот код-пример:

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import static jdbc.ConnectionData.URL; import static jdbc.ConnectionData.USER; import static jdbc.ConnectionData.PASSWORD; public class RetrieveDataPreparedStatement < private static final String SELECT_QUERY = "SELECT * FROM users WHERE id>? AND username LIKE ?"; public static void main(String[] args) < try (Connection connection = DriverManager.getConnection(URL, USER, PASSWORD); PreparedStatement preparedStatement = connection.prepareStatement(SELECT_QUERY)) < preparedStatement.setInt(1, 2); preparedStatement.setString(2, "P%"); ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()) < System.out.printf("%d%23s%n", resultSet.getInt("id"), resultSet.getString("username")); >> catch (SQLException e) < System.out.println(e.getMessage()); >> >

Интерфейс PreparedStatement

Основное отличие – это наличие параметров. Выражение с соответствующими элементами имеет знаки вопроса в контенте:

Java и базы данных — все от А до Я

Перед выполнением посланного запроса значение каждого «?» устанавливается методами setXxx(). Вот пример применения интерфейса:

Java и базы данных — все от А до Я

JDBC пример в программировании на Java удалось рассмотреть. И далеко не один. Это лишь шаблоны, на которые можно опираться пользователю.

Чтобы такие выражения как insert into, sql, import void и другие, встречающиеся в программировании, не вызывали вопросов, стоит посетить компьютерные курсы. Есть дистанционные варианты, помогающие разобрать в программировании на разных языках «с нуля». Программы рассчитаны на срок до года. Пользователи могут выбрать узкую направленность (специализацию), а также уровень своего мастерства. Полезные обучающие программы по БД в Java есть как для новичков, так и для продвинутых разработчиков.

Шаг 2. Создание базы данных для разработки на Java

Примеры в этом разделе работают только с AdventureWorks2022 базой данных в SQL Server или База данных SQL Azure.

База данных SQL Azure

SQL Server

Следующие шаги

Обратная связь

Были ли сведения на этой странице полезными?

Обратная связь

Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see: https://aka.ms/ContentUserFeedback.

Отправить и просмотреть отзыв по

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *