Быстрый старт для Java

В этом разделе описывается разработка приложений на Java, взаимодействующих с СУБД Компонента.

Подключение к базе данных

Приведенный ниже код реализует подключение к базе данных postgres на локальной машине через порт 5433 от имени пользователя postgres.
Раскрыть type=java
import 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 Не забудьте подключить jar-файл с библиотекой JDBC.

Операция CREATE

Приведенный ниже код создает таблицу mystore в базе данных testdb и наполняет ее данными.
Раскрыть type=java
import 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

Операция SELECT

Приведенный ниже код выводит на экран записи из таблицы mystore:
Раскрыть type=java
import 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=bash
java -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=java
import 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=bash
java -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 |
Таблица выведена на экран

Операция DELETE

Приведенный ниже код удаляет данные из таблицы mystore с помощью операции DELETE и выводит на экран обновленные записи:
Раскрыть type=javava
import 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=bash
java -cp ./postgresql-42.2.24.jar delete.java
Данные в таблице обновлены
id | Тип | Цвет | Материал | Запас | Цена |
1 | Футболка | Синий | Хлопок | 500 | 999 |
2 | Футболка | Желтый | Хлопок | 500 | 999 |
3 | Футболка | Красный | Хлопок | 500 | 999 |
5 | Рубашка | Белый | Хлопок | 600 | 999 |
Таблица выведена на экран
Предыдущий раздел
Быстрый старт для С++
Следующий раздел
Расширения
Была ли страница полезной?