Быстрый старт для Java
В этом разделе описывается разработка приложений на Java, взаимодействующих с СУБД Компонента.
Приведенный ниже код реализует подключение к базе данных
postgres
на локальной машине через порт 5433 от имени пользователя postgres
.Раскрыть type=javaimport java.sql.DriverManager; import java.sql.Connection; import java.sql.SQLException; public class Main { // Учетные данные для подключения static final String DB_URL = "jdbc:postgresql://<IP-адрес>/postgres"; //Замените на свой IP static final String USER = "postgres"; static final String PASS = "пароль"; //Замените на пароль postgres public static void main(String[] argv) { System.out.println("Проверка подключения драйвера JDBC"); try { Class.forName("org.postgresql.Driver"); } catch (ClassNotFoundException e) { System.out.println("Драйвер JDBC не обнаружен"); e.printStackTrace(); return; } System.out.println("Драйвер JDBC обнаружен, выполняется установка соединения"); Connection connection = null; try { connection = DriverManager .getConnection(DB_URL, USER, PASS); } catch (SQLException e) { System.out.println("Не удалось установить соединение"); e.printStackTrace(); return; } if (connection != null) { System.out.println("Соединение с базой данных установлено"); } else { System.out.println("Не удалось установить соединение с базой данных"); } } }
Скомпилируйте программу и выполните ее:
java -cp ./postgresql-42.2.24.jar Main.java
Приведенный ниже код создает таблицу
mystore
в базе данных testdb
и наполняет ее данными.Раскрыть type=javaimport java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.PreparedStatement; public class Create { // Учетные данные для подключения static final String DB_URL = "jdbc:postgresql://<IP-адрес>/postgres"; //Замените на свой IP static final String USER = "postgres"; static final String PASS = "пароль"; //Замените на пароль postgres public static void main(String[] argv) { String query = "create table mystore(" + //Создание таблицы с заголовками "ID int primary key not null," + "Тип text not null," + "Цвет text not null," + "Материал text not null," + "Запас int," + "Цена real );" + "insert into mystore (ID,Тип,Цвет,Материал,Запас,Цена) " + //... и наполнение ее данными "values (1, 'Футболка', 'Синий', 'Хлопок', 500, 2000.00 ); " + "insert into mystore (ID,Тип,Цвет,Материал,Запас,Цена) " + "values (2, 'Футболка', 'Желтый', 'Хлопок', 500, 2000.00 ); " + "insert into mystore (ID,Тип,Цвет,Материал,Запас,Цена) " + "values (3, 'Футболка', 'Красный', 'Хлопок', 500, 2000.00 ); " + "insert into mystore (ID,Тип,Цвет,Материал,Запас,Цена) " + "values (4, 'Рубашка', 'Синий', 'Шелк', 400, 2500.00 ); " + "insert into mystore (ID,Тип,Цвет,Материал,Запас,Цена) " + "values (5, 'Рубашка', 'Белый', 'Хлопок', 600, 1400.00 ); " + "insert into mystore (ID,Тип,Цвет,Материал,Запас,Цена) " + "values (6, 'Свитер', 'Синий', 'Шерсть', 100, 4000.00 ); " + "insert into mystore (ID,Тип,Цвет,Материал,Запас,Цена) " + "values (7, 'Футболка', 'Синий', 'Нейлон', 500, 1000.00 ); "; try (Connection con = DriverManager.getConnection(DB_URL, USER, PASS); PreparedStatement pst = con.prepareStatement(query)){ pst.executeUpdate(); } catch (Exception e2) { System.err.println("Операция выполнена с ошибкой"); System.err.println(e2); System.exit(2); } System.out.println("Таблица создана и наполнена данными"); } }
Скомпилируйте программу и выполните ее:
java -cp ./postgresql-42.2.24.jar create.java
Приведенный ниже код выводит на экран записи из таблицы
mystore
:Раскрыть type=javaimport java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.PreparedStatement; public class Select { // Учетные данные для подключения static final String DB_URL = "jdbc:postgresql://<>IP-адрес>/postgres"; //Замените на свой IP static final String USER = "postgres"; static final String PASS = "пароль"; //Замените на пароль postgres public static void main(String[] argv) { String query = "select * from mystore"; try (Connection con = DriverManager.getConnection(DB_URL, USER, PASS); PreparedStatement pst = con.prepareStatement(query); ResultSet rs = pst.executeQuery()) { ResultSetMetaData meta = pst.getMetaData(); //Получение и вывод названий столбцов таблицы for (int i=1; i <= meta.getColumnCount(); i++) { System.out.print(meta.getColumnName(i) + " | "); } System.out.print("\n"); while (rs.next()) { //Построчный вывод содержимого таблицы for (int i=1; i <= meta.getColumnCount(); i++) { System.out.print(rs.getString(i) + " | "); } System.out.print("\n"); } } catch (Exception e2) { System.err.println("Операция выполнена с ошибкой"); System.err.println(e2); System.exit(2); } System.out.println("Таблица выведена на экран"); } }
Скомпилируйте программу и выполните ее:
Раскрыть type=bashjava -cp ./postgresql-42.2.24.jar select.java id | Тип | Цвет | Материал | Запас | Цена | 1 | Футболка | Синий | Хлопок | 500 | 2000 | 2 | Футболка | Желтый | Хлопок | 500 | 2000 | 3 | Футболка | Красный | Хлопок | 500 | 2000 | 4 | Рубашка | Синий | Шелк | 400 | 2500 | 5 | Рубашка | Белый | Хлопок | 600 | 1400 | 6 | Свитер | Синий | Шерсть | 100 | 4000 | 7 | Футболка | Синий | Нейлон | 500 | 1000 | Таблица выведена на экран
Операция UPDATE
Приведенный ниже код изменяет данные в таблице
mystore
с помощью операции UPDATE
и выводит на экран обновленные записи:Раскрыть type=javaimport java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.PreparedStatement; public class Update { // Учетные данные для подключения static final String DB_URL = "jdbc:postgresql://<IP-адрес>/postgres"; //Замените на свой IP static final String USER = "postgres"; static final String PASS = "пароль"; //Замените на пароль postgres public static void main(String[] argv) { String query = "update mystore set Цена = 999 where Материал='Хлопок'"; //Обновление данных в таблице try (Connection con = DriverManager.getConnection(DB_URL, USER, PASS); PreparedStatement pst = con.prepareStatement(query)){ pst.executeUpdate(); } catch (Exception e2) { System.err.println("Операция выполнена с ошибкой"); System.err.println(e2); System.exit(2); } System.out.println("Данные в таблице обновлены"); // Далее идет код вывода результата из предыдущего шага query = "select * from mystore"; try (Connection con = DriverManager.getConnection(DB_URL, USER, PASS); PreparedStatement pst = con.prepareStatement(query); ResultSet rs = pst.executeQuery()) { ResultSetMetaData meta = pst.getMetaData(); //Получение и вывод названий столбцов таблицы for (int i=1; i <= meta.getColumnCount(); i++) { System.out.print(meta.getColumnName(i) + " | "); } System.out.print("\n"); while (rs.next()) { //Построчный вывод содержимого таблицы for (int i=1; i <= meta.getColumnCount(); i++) { System.out.print(rs.getString(i) + " | "); } System.out.print("\n"); } } catch (Exception e2) { System.err.println("Операция выполнена с ошибкой"); System.err.println(e2); System.exit(2); } System.out.println("Таблица выведена на экран"); } }
Скомпилируйте программу и выполните ее:
Раскрыть type=bashjava -cp ./postgresql-42.2.24.jar update.java Данные в таблице обновлены id | Тип | Цвет | Материал | Запас | Цена | 4 | Рубашка | Синий | Шелк | 400 | 2500 | 6 | Свитер | Синий | Шерсть | 100 | 4000 | 7 | Футболка | Синий | Нейлон | 500 | 1000 | 1 | Футболка | Синий | Хлопок | 500 | 999 | 2 | Футболка | Желтый | Хлопок | 500 | 999 | 3 | Футболка | Красный | Хлопок | 500 | 999 | 5 | Рубашка | Белый | Хлопок | 600 | 999 | Таблица выведена на экран
Приведенный ниже код удаляет данные из таблицы
mystore
с помощью операции DELETE
и выводит на экран обновленные записи:Раскрыть type=javavaimport java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.PreparedStatement; public class Delete { // Учетные данные для подключения static final String DB_URL = "jdbc:postgresql://<IP-адрес>/postgres"; //Замените на свой IP static final String USER = "postgres"; static final String PASS = "пароль"; //Замените на пароль postgres public static void main(String[] argv) { String query = "delete from mystore where Материал != 'Хлопок'"; //Удаление записей из таблицы try (Connection con = DriverManager.getConnection(DB_URL, USER , PASS); PreparedStatement pst = con.prepareStatement(query)){ pst.executeUpdate(); } catch (Exception e2) { System.err.println("Операция выполнена с ошибкой"); System.err.println(e2); System.exit(2); } System.out.println("Данные в таблице обновлены"); // Далее идет код вывода результата из предыдущего шага query = "select * from mystore"; try (Connection con = DriverManager.getConnection(DB_URL, USER , PASS); PreparedStatement pst = con.prepareStatement(query); ResultSet rs = pst.executeQuery()) { ResultSetMetaData meta = pst.getMetaData(); //Получение и вывод названий столбцов таблицы for (int i=1; i <= meta.getColumnCount(); i++) { System.out.print(meta.getColumnName(i) + " | "); } System.out.print("\n"); while (rs.next()) { //Построчный вывод содержимого таблицы for (int i=1; i <= meta.getColumnCount(); i++) { System.out.print(rs.getString(i) + " | "); } System.out.print("\n"); } } catch (Exception e2) { System.err.println("Операция выполнена с ошибкой"); System.err.println(e2); System.exit(2); } System.out.println("Таблица выведена на экран"); } }
Скомпилируйте программу и выполните ее:
Раскрыть type=bashjava -cp ./postgresql-42.2.24.jar delete.java Данные в таблице обновлены id | Тип | Цвет | Материал | Запас | Цена | 1 | Футболка | Синий | Хлопок | 500 | 999 | 2 | Футболка | Желтый | Хлопок | 500 | 999 | 3 | Футболка | Красный | Хлопок | 500 | 999 | 5 | Рубашка | Белый | Хлопок | 600 | 999 | Таблица выведена на экран