Использование JDBC-драйвера для подключения JVM-based приложений к ADQM

Для подключения JVM-based приложения к базе данных ADQM можно использовать JDBC-драйвер.

Ниже приведен пример приложения Java, которое собирается с помощью Maven и взаимодействует с сервером ADQM через JDBC-драйвер. Исходный код приложения находится в файле <project_path>/src/main/java/io/arenadata/adqm/test/TestApp.java, а файл pom.xml с описанием структуры проекта — в корневой папке проекта <project_path>/pom.xml.

  1. В файле pom.xml добавьте следующую зависимость, чтобы подключить JDBC-драйвер из центрального репозитория Maven:

    <dependencies>
        <dependency>
            <groupId>com.clickhouse</groupId>
            <artifactId>clickhouse-jdbc</artifactId>
            <version>0.3.2</version>
            <classifier>all</classifier>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
  2. Создайте основной класс приложения, используя следующий код:

    package io.arenadata.adqm.test;
    
    import com.clickhouse.jdbc.*;
    import java.sql.*;
    import java.util.*;
    
    public class TestApp {
        private static Connection getConnection(String url) throws SQLException {
            return DriverManager.getConnection(url);
        }
    
        public static void main(String[] args) {
            String url = "jdbc:clickhouse://<IP>:8123/default";
            try (
                Connection connection = getConnection(url);
                Statement stmt = connection.createStatement();
                ResultSet rs = stmt.executeQuery("SELECT * FROM <table_name> LIMIT 5")) {
                    ResultSetMetaData rsMetaData = rs.getMetaData();
                    int columns = rsMetaData.getColumnCount();
                    while (rs.next()) {
                        for (int c = 1; c <= columns; c++) {
                            System.out.print(rsMetaData.getColumnName(c) + ":" + rs.getString(c) + (c < columns ? " | " : "\n"));
                        }
                    }
            }
            catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    Этот код устанавливает соединение с сервером ADQM через DriverManager (от имени пользователя default без пароля) и выводит первые пять строк заданной таблицы базы данных default в выходной поток. Замените <IP> на IP-адрес вашего сервера ADQM и вместо <table_name> в строке запроса введите название таблицы, существующей в базе данных default на вашем сервере ADQM.

  3. Для пользователя default укажите из каких сетей разрешено подключение к ADQM (см. пример в статье Подключение к ADQM).

  4. Соберите и запустите проект. Пример вывода на экран:

    a:1 | b:text1 | c:100
    a:2 | b:text2 | c:200
    a:3 | b:text3 | c:300
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней