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

Java Клиент (0.8+)

Java клиентская библиотека для взаимодействия с сервером БД через его протоколы. Текущая реализация поддерживает только HTTP интерфейс. Библиотека предоставляет собственный API для отправки запросов на сервер. Она также предоставляет инструменты для работы с различными двоичными форматами данных (RowBinary* и Native*).

примечание

Если вам нужна предыдущая версия документации по клиенту java, пожалуйста, смотрите здесь.

Настройка

Инициализация

Объект Client инициализируется с помощью com.clickhouse.client.api.Client.Builder#build(). Каждый клиент имеет свой собственный контекст, и объекты не разделяются между ними. Строитель имеет методы конфигурации для удобной настройки.

Пример:

Client является AutoCloseable и должен быть закрыт, когда больше не нужен.

Аутентификация

Аутентификация настраивается для каждого клиента на этапе инициализации. Поддерживаются три метода аутентификации: по паролю, по токену доступа, по SSL клиентскому сертификату.

Аутентификация по паролю требует установки имени пользователя и пароля с помощью setUsername(String) и setPassword(String):

Аутентификация по токену доступа требует установки токена доступа с помощью setAccessToken(String):

Аутентификация по SSL клиентскому сертификату требует установки имени пользователя, включения SSL аутентификации, установки клиентского сертификата и клиентского ключа с помощью setUsername(String), useSSLAuthentication(boolean), setClientCertificate(String) и setClientKey(String) соответственно:

примечание

SSL аутентификация может быть трудно отлаживать в производственных условиях, так как многие ошибки из библиотек SSL предоставляют недостаточно информации. Например, если клиентский сертификат и ключ не совпадают, сервер немедленно завершит соединение (в случае HTTP это произойдет на этапе инициации соединения, когда HTTP-запросы еще не отправлены, соответственно, ответ не будет получен).

Пожалуйста, используйте инструменты, такие как openssl, для проверки сертификатов и ключей:

  • проверьте целостность ключа: openssl rsa -in [key-file.key] -check -noout
  • проверьте, что клиентский сертификат имеет совпадающий CN для пользователя:
    • получите CN из сертификата пользователя: openssl x509 -noout -subject -in [user.cert]
    • проверьте, что то же значение установлено в базе данных: select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate' (запрос выведет auth_params с чем-то вроде {"common_names":["some_user"]})

Конфигурация

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

Конфигурация определяется во время создания клиента. См. com.clickhouse.client.api.Client.Builder.

Конфигурация клиента

Метод конфигурацииАргументыОписание
addEndpoint(String endpoint)- enpoint - URL-формат адреса сервера.Добавляет конечную точку сервера в список доступных серверов. В настоящее время поддерживается только одна конечная точка.
addEndpoint(Protocol protocol, String host, int port, boolean secure)- protocol - протокол подключения com.clickhouse.client.api.enums.Protocol#HTTP.
- host - IP-адрес или имя хоста сервера.
- secure - если связь должна использовать защищенную версию протокола (HTTPS)
Добавляет конечную точку сервера в список доступных серверов. В настоящее время поддерживается только одна конечная точка.
setOption(String key, String value)- key - строковой ключ параметра конфигурации клиента.
- value - строковое значение параметра
Устанавливает необработанное значение параметров клиента. Полезно при чтении конфигурации из файлов свойств.
setUsername(String username)- username - Имя пользователя для аутентификацииУстанавливает имя пользователя для метода аутентификации, выбранного дальнейшей конфигурацией
setPassword(String password)- password - секретное значение для аутентификации по паролюУстанавливает секрет для аутентификации по паролю и эффективно выбирает его в качестве метода аутентификации
setAccessToken(String accessToken)- accessToken - строковое представление токена доступаУстанавливает токен доступа для аутентификации с установленным соответствующим методом аутентификации
useSSLAuthentication(boolean useSSLAuthentication)- useSSLAuthentication - флаг, который указывает, нужно ли использовать SSL аутентификациюУстанавливает SSL клиентский сертификат в качестве метода аутентификации
enableConnectionPool(boolean enable)- enable - флаг, который указывает, нужно ли включать опциюУстанавливает, включен ли пул соединений
setConnectTimeout(long timeout, ChronoUnit unit)- timeout - таймаут в некоторой единице времени.
- unit - единица времени для timeout
Устанавливает таймаут инициации соединения для любого исходящего соединения. Это влияет на время ожидания соединения сокета.
setConnectionRequestTimeout(long timeout, ChronoUnit unit)- timeout - таймаут в некоторой единице времени.
- unit - единица времени для timeout
Устанавливает таймаут для запроса соединения. Это имеет эффект только при получении соединения из пула.
setMaxConnections(int maxConnections)- maxConnections - количество соединенийУстанавливает, сколько соединений клиент может открыть к каждой конечной точке сервера.
setConnectionTTL(long timeout, ChronoUnit unit)- timeout - таймаут в некоторой единице времени.
- unit - единица времени для timeout
Устанавливает срок жизни соединения (TTL), после которого соединение будет считаться неактивным
setKeepAliveTimeout(long timeout, ChronoUnit unit)- timeout - таймаут в некоторой единице времени.
- unit - единица времени для timeout
Устанавливает таймаут keep-alive для HTTP соединения. Эта опция может быть использована для отключения Keep-Alive, установив таймаут в ноль - 0
setConnectionReuseStrategy(ConnectionReuseStrategy strategy)- strategy - перечисление com.clickhouse.client.api.ConnectionReuseStrategyВыбирает, какую стратегию должен использовать пул соединений: LIFO, если соединение должно быть повторно использовано, как только оно возвращается в пул, или FIFO, чтобы использовать соединение по порядку, когда они становятся доступными (возвращенные соединения не используются немедленно).
setSocketTimeout(long timeout, ChronoUnit unit)- timeout - таймаут в некоторой единице времени.
- unit - единица времени для timeout
Устанавливает таймаут сокета, который влияет на операции чтения и записи
setSocketRcvbuf(long size)- size - размер в байтахУстанавливает размер буфера приема TCP сокета. Этот буфер выходит за пределы памяти JVM.
setSocketSndbuf(long size)- size - размер в байтахУстанавливает размер буфера передачи TCP сокета. Этот буфер выходит за пределы памяти JVM.
setSocketKeepAlive(boolean value)- value - флаг, который указывает, нужно ли включать опцию.Устанавливает опцию SO_KEEPALIVE для каждого TCP сокета, создаваемого клиентом. TCP Keep Alive включает механизм, который проверяет активность соединения и помогает обнаруживать внезапно прерванные соединения.
setSocketTcpNodelay(boolean value)- value - флаг, который указывает, нужно ли включать опцию.Устанавливает опцию SO_NODELAY для каждого TCP сокета, создаваемого клиентом. Эта TCP опция заставляет сокет отправлять данные как можно быстрее.
setSocketLinger(int secondsToWait)- secondsToWait - количество секунд.Устанавливает время ожидания для каждого TCP сокета, создаваемого клиентом.
compressServerResponse(boolean enabled)- enabled - флаг, который указывает, нужно ли включать опциюУстанавливает, должен ли сервер сжимать свои ответы.
compressClientRequest(boolean enabled)- enabled - флаг, который указывает, нужно ли включать опциюУстанавливает, должен ли клиент сжимать свои запросы.
useHttpCompression(boolean enabled)- enabled - флаг, который указывает, нужно ли включать опциюУстанавливает, следует ли использовать HTTP сжатие для взаимодействия между клиентом и сервером, если соответствующие опции включены
setLZ4UncompressedBufferSize(int size)- size - размер в байтахУстанавливает размер буфера, который будет принимать несжатую часть потока данных. Если буфер недооценен, будет создан новый, и соответствующее предупреждение будет присутствовать в логах.
setDefaultDatabase(String database)- database - имя базы данныхУстанавливает базу данных по умолчанию.
addProxy(ProxyType type, String host, int port)- type - тип прокси.
- host - имя хоста прокси или IP-адрес.
- port - порт прокси
Устанавливает прокси для использования для связи с сервером. Установка прокси обязательна, если прокси требует аутентификации.
setProxyCredentials(String user, String pass)- user - имя пользователя прокси.
- pass - пароль
Устанавливает учетные данные пользователя для аутентификации с прокси.
setExecutionTimeout(long timeout, ChronoUnit timeUnit)- timeout - таймаут в некоторой единице времени.
- timeUnit - единица времени для timeout
Устанавливает максимальный таймаут выполнения для запросов
setHttpCookiesEnabled(boolean enabled)- enabled - флаг, который указывает, нужно ли включать опциюУстанавливает, должны ли HTTP куки запоминаться и отправляться обратно на сервер.
setSSLTrustStore(String path)- path - путь к файлу на локальной (клиентской) системеУстанавливает, должен ли клиент использовать SSL truststore для проверки действительности хоста сервера.
setSSLTrustStorePassword(String password)- password - секретное значениеУстанавливает пароль для разблокировки SSL truststore, указанный в setSSLTrustStore(String path)
setSSLTrustStoreType(String type)- type - имя типа truststoreУстанавливает тип truststore, указанный в setSSLTrustStore(String path).
setRootCertificate(String path)- path - путь к файлу на локальной (клиентской) системеУстанавливает, должен ли клиент использовать указанный корневой (CA) сертификат для проверки действительности хоста сервера.
setClientCertificate(String path)- path - путь к файлу на локальной (клиентской) системеУстанавливает путь к клиентскому сертификату, который будет использоваться при инициации SSL соединения и для аутентификации по SSL
setClientKey(String path)- path - путь к файлу на локальной (клиентской) системеУстанавливает закрытый ключ клиента, который будет использоваться для шифрования SSL связи с сервером.
useServerTimeZone(boolean useServerTimeZone)- useServerTimeZone - флаг, который указывает, нужно ли включать опциюУстанавливает, должен ли клиент использовать временную зону сервера при декодировании значений столбцов DateTime и Date. Если включено, то временная зона сервера должна быть установлена с помощью setServerTimeZone(String timeZone)
useTimeZone(String timeZone)- timeZone - строковое значение действительного идентификатора временной зоны java (см. java.time.ZoneId)Устанавливает, должна ли использоваться указанная временная зона при декодировании значений столбцов DateTime и Date. Перекрывает временную зону сервера
setServerTimeZone(String timeZone)- timeZone - строковое значение действительного идентификатора временной зоны java (см. java.time.ZoneId)Устанавливает временную зону на стороне сервера. По умолчанию будет использована временная зона UTC.
useAsyncRequests(boolean async)- async - флаг, который указывает, нужно ли включать опцию.Устанавливает, должен ли клиент выполнять запрос в отдельном потоке. По умолчанию отключено, так как приложение лучше знает, как организовать многопоточные задачи, и запуск задач в отдельном потоке не помогает с производительностью.
setSharedOperationExecutor(ExecutorService executorService)- executorService - экземпляр службы исполнителя.Устанавливает службу исполнителя для операционных задач.
setClientNetworkBufferSize(int size)- size - размер в байтахУстанавливает размер буфера в пространстве памяти приложения, который используется для копирования данных между сокетом и приложением. Увеличение размера уменьшает количество системных вызовов к стеку TCP, но влияет на количество памяти, выделяемой для каждого соединения. Этот буфер также подлежит сбору мусора, поскольку соединения недолговечны. Также необходимо учитывать, что выделение большого непрерывного блока памяти может быть проблемой. По умолчанию 300,000 байт.
retryOnFailures(ClientFaultCause ...causes)- causes - перечисление com.clickhouse.client.api.ClientFaultCauseУстанавливает типы сбоев, которые могут быть восстановлены/попробованы повторно.
setMaxRetries(int maxRetries)- maxRetries - количество повторных попытокУстанавливает максимальное количество повторных попыток для сбоев, определённых с помощью retryOnFailures(ClientFaultCause ...causes)
allowBinaryReaderToReuseBuffers(boolean reuse)- reuse - флаг, который указывает, нужно ли включать опциюБольшинство наборов данных содержат числовые данные, закодированные в виде небольших последовательностей байтов. По умолчанию считыватель будет выделять необходимый буфер, считывать данные в него, а затем преобразовывать в целевой класс Number. Это может вызвать значительное давление на сборщик мусора из-за большого количества выделяемых и освобождаемых объектов. Если эта опция включена, считыватель будет использовать предвыделенные буферы для преобразования чисел. Это безопасно, так как каждый считыватель имеет свой собственный набор буферов, и считыватели используются в одном потоке.
httpHeader(String key, String value)- key - ключ HTTP заголовка.
- value - строковое значение заголовка.
Устанавливает значение для одного HTTP заголовка. Предыдущее значение заменяется.
httpHeader(String key, Collection values)- key - ключ HTTP заголовка.
- values - список строковых значений.
Устанавливает значения для одного HTTP заголовка. Предыдущее значение заменяется.
httpHeaders(Map headers)- header - карта с HTTP заголовками и их значениями.Устанавливает несколько значений HTTP заголовков одновременно.
serverSetting(String name, String value)- name - имя настройки на уровне запроса.
- value - строковое значение настройки.
Устанавливает, какие настройки передавать на сервер вместе с каждым запросом. Индивидуальные параметры операции могут их переопределить. Список настроек
serverSetting(String name, Collection values)- name - имя настройки на уровне запроса.
- values - строковые значения настройки.
Устанавливает, какие настройки передавать на сервер вместе с каждым запросом. Индивидуальные параметры операции могут их переопределить. Список настроек. Этот метод полезен для установки настроек с несколькими значениями, например роли
columnToMethodMatchingStrategy(ColumnToMethodMatchingStrategy strategy)- strategy - реализация стратегии соответствия столбца и методаУстанавливает пользовательскую стратегию, которая будет использована для соответствия полей класса DTO и столбцов базы данных при регистрации DTO.
useHTTPBasicAuth(boolean useBasicAuth)- useBasicAuth - флаг, который указывает, нужно ли включать опциюУстанавливает, должна ли использоваться базовая HTTP аутентификация для аутентификации по имени пользователя и паролю. По умолчанию включена. Использование этого типа аутентификации решает проблемы с паролями, содержащими специальные символы, которые не могут быть переданы через HTTP заголовки.
setClientName(String clientName)- clientName - строка, представляющая имя приложенияУстанавливает дополнительную информацию о вызываемом приложении. Эта строка будет передана на сервер в качестве имени клиента. В случае протокола HTTP она будет передана как заголовок User-Agent.
useBearerTokenAuth(String bearerToken)- bearerToken - закодированный токен носителяУказывает, следует ли использовать аутентификацию на основе носителя и какой токен использовать. Токен будет отправлен как есть, поэтому его следует закодировать перед передачей в этот метод.

Общие определения

ClickHouseFormat

Перечисление поддерживаемых форматов. Включает все форматы, которые поддерживает ClickHouse.

  • raw - пользователь должен перекодировать сырые данные
  • full - клиент может самостоятельно перекодировать данные и принимает сырое поток данных
  • - - операция не поддерживается ClickHouse для этого формата

Эта версия клиента поддерживает:

ФорматВходВыход
TabSeparatedrawraw
TabSeparatedRawrawraw
TabSeparatedWithNamesrawraw
TabSeparatedWithNamesAndTypesrawraw
TabSeparatedRawWithNamesrawraw
TabSeparatedRawWithNamesAndTypesrawraw
Templaterawraw
TemplateIgnoreSpacesraw-
CSVrawraw
CSVWithNamesrawraw
CSVWithNamesAndTypesrawraw
CustomSeparatedrawraw
CustomSeparatedWithNamesrawraw
CustomSeparatedWithNamesAndTypesrawraw
SQLInsert-raw
Valuesrawraw
Vertical-raw
JSONrawraw
JSONAsStringraw-
JSONAsObjectraw-
JSONStringsrawraw
JSONColumnsrawraw
JSONColumnsWithMetadatarawraw
JSONCompactrawraw
JSONCompactStrings-raw
JSONCompactColumnsrawraw
JSONEachRowrawraw
PrettyJSONEachRow-raw
JSONEachRowWithProgress-raw
JSONStringsEachRowrawraw
JSONStringsEachRowWithProgress-raw
JSONCompactEachRowrawraw
JSONCompactEachRowWithNamesrawraw
JSONCompactEachRowWithNamesAndTypesrawraw
JSONCompactStringsEachRowrawraw
JSONCompactStringsEachRowWithNamesrawraw
JSONCompactStringsEachRowWithNamesAndTypesrawraw
JSONObjectEachRowrawraw
BSONEachRowrawraw
TSKVrawraw
Pretty-raw
PrettyNoEscapes-raw
PrettyMonoBlock-raw
PrettyNoEscapesMonoBlock-raw
PrettyCompact-raw
PrettyCompactNoEscapes-raw
PrettyCompactMonoBlock-raw
PrettyCompactNoEscapesMonoBlock-raw
PrettySpace-raw
PrettySpaceNoEscapes-raw
PrettySpaceMonoBlock-raw
PrettySpaceNoEscapesMonoBlock-raw
Prometheus-raw
Protobufrawraw
ProtobufSinglerawraw
ProtobufListrawraw
Avrorawraw
AvroConfluentraw-
Parquetrawraw
ParquetMetadataraw-
Arrowrawraw
ArrowStreamrawraw
ORCrawraw
Oneraw-
Npyrawraw
RowBinaryfullfull
RowBinaryWithNamesfullfull
RowBinaryWithNamesAndTypesfullfull
RowBinaryWithDefaultsfull-
Nativefullraw
Null-raw
XML-raw
CapnProtorawraw
LineAsStringrawraw
Regexpraw-
RawBLOBrawraw
MsgPackrawraw
MySQLDumpraw-
DWARFraw-
Markdown-raw
Formraw-

API вставки

Параметры

tableName - имя целевой таблицы.

data - входной поток закодированных данных.

format - формат, в котором данные закодированы.

settings - настройки запроса.

Возвращаемое значение

Future типа InsertResponse - результат операции и дополнительная информация, такая как метрики со стороны сервера.

Примеры

insert(String tableName, List<?> data, InsertSettings settings)

Отправляет запрос на запись в базу данных. Список объектов конвертируется в эффективный формат и затем отправляется на сервер. Класс элементов списка должен быть зарегистрирован заранее с помощью метода register(Class, TableSchema).

Сигнатуры

Параметры

tableName - имя целевой таблицы.

data - коллекция объектов DTO (Объект передачи данных).

settings - настройки запроса.

Возвращаемое значение

Future типа InsertResponse - результат операции и дополнительная информация, такая как метрики со стороны сервера.

Примеры

InsertSettings

Настройки конфигурации для операций вставки.

Методы конфигурации

МетодОписание
setQueryId(String queryId)Устанавливает идентификатор запроса, который будет присвоен операции. По умолчанию: null.
setDeduplicationToken(String token)Устанавливает токен дедупликации. Этот токен будет отправлен на сервер и может использоваться для идентификации запроса. По умолчанию: null.
setInputStreamCopyBufferSize(int size)Размер буфера копирования. Буфер используется во время операций записи для копирования данных из пользовательского входного потока в выходной поток. По умолчанию: 8196.
serverSetting(String name, String value)Устанавливает отдельные настройки сервера для операции.
serverSetting(String name, Collection values)Устанавливает отдельные настройки сервера с несколькими значениями для операции. Элементы коллекции должны быть строковыми значениями.
setDBRoles(Collection dbRoles)Устанавливает роли базы данных, которые должны быть установлены перед выполнением операции. Элементы коллекции должны быть строковыми значениями.
setOption(String option, Object value)Устанавливает конфигурационную опцию в сыром формате. Это не настройка сервера.

InsertResponse

Объект ответа, который содержит результат операции вставки. Он доступен только в том случае, если клиент получил ответ от сервера.

примечание

Этот объект должен быть закрыт как можно скорее, чтобы освободить соединение, так как соединение не может быть повторно использовано, пока все данные предыдущего ответа не будут полностью прочитаны.

МетодОписание
OperationMetrics getMetrics()Возвращает объект с метриками операции.
String getQueryId()Возвращает идентификатор запроса, присвоенный операции приложением (через настройки операции или сервером).

Query API

query(String sqlQuery)

Отправляет sqlQuery как есть. Формат ответа задается настройками запроса. QueryResponse будет хранить ссылку на поток ответа, который должен быть обработан читателем для поддерживаемого формата.

Сигнатуры

Параметры

sqlQuery - одно SQL выражение. Запрос отправляется как есть на сервер.

settings - настройки запроса.

Возвращаемое значение

Future типа QueryResponse - набор результатов и дополнительная информация, такая как метрики со стороны сервера. Объект Response должен быть закрыт после обработки набора данных.

Примеры

query(String sqlQuery, Map<String, Object> queryParams, QuerySettings settings)

Отправляет sqlQuery как есть. Дополнительно отправит параметры запроса, чтобы сервер мог скомпилировать SQL выражение.

Сигнатуры

Параметры

sqlQuery - SQL выражение с заполнительными символами {}.

queryParams - карта переменных для завершения SQL выражения на сервере.

settings - настройки запроса.

Возвращаемое значение

Future типа QueryResponse - набор результатов и дополнительная информация, такая как метрики со стороны сервера. Объект Response должен быть закрыт после обработки набора данных.

Примеры

queryAll(String sqlQuery)

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

Сигнатуры

Параметры

sqlQuery - SQL выражение для запроса данных с сервера.

Возвращаемое значение

Полный набор данных, представленный списком объектов GenericRecord, которые обеспечивают доступ к результатам по строкам.

Примеры

QuerySettings

Настройки конфигурации для операций запросов.

Методы конфигурации

МетодОписание
setQueryId(String queryId)Устанавливает идентификатор запроса, который будет присвоен операции.
setFormat(ClickHouseFormat format)Устанавливает формат ответа. Смотрите RowBinaryWithNamesAndTypes для полного списка.
setMaxExecutionTime(Integer maxExecutionTime)Устанавливает время выполнения операции на сервере. Не повлияет на тайм-аут чтения.
waitEndOfQuery(Boolean waitEndOfQuery)Запрашивает сервер дождаться окончания запроса перед отправкой ответа.
setUseServerTimeZone(Boolean useServerTimeZone)Часовой пояс сервера (см. конфигурацию клиента) будет использоваться для разбора типов даты/времени в результате операции. По умолчанию false.
setUseTimeZone(String timeZone)Запрашивает сервер использовать timeZone для конвертации времени. Смотрите session_timezone.
serverSetting(String name, String value)Устанавливает отдельные настройки сервера для операции.
serverSetting(String name, Collection values)Устанавливает отдельные настройки сервера с несколькими значениями для операции. Элементы коллекции должны быть строковыми значениями.
setDBRoles(Collection dbRoles)Устанавливает роли базы данных, которые должны быть установлены перед выполнением операции. Элементы коллекции должны быть строковыми значениями.
setOption(String option, Object value)Устанавливает конфигурационную опцию в сыром формате. Это не настройка сервера.

QueryResponse

Объект ответа, который содержит результат выполнения запроса. Он доступен только в том случае, если клиент получил ответ от сервера.

примечание

Этот объект должен быть закрыт как можно скорее, чтобы освободить соединение, так как соединение не может быть повторно использовано, пока все данные предыдущего ответа не будут полностью прочитаны.

МетодОписание
ClickHouseFormat getFormat()Возвращает формат, в котором данные в ответе закодированы.
InputStream getInputStream()Возвращает несжатый байтовый поток данных в указанном формате.
OperationMetrics getMetrics()Возвращает объект с метриками операции.
String getQueryId()Возвращает идентификатор запроса, присвоенный операции приложением (через настройки операции или сервером).
TimeZone getTimeZone()Возвращает часовой пояс, который должен использоваться для обработки типов Date/DateTime в ответе.

Examples

Common API

getTableSchema(String table)

Получает схему таблицы для table.

Сигнатуры

Параметры

table - имя таблицы, для которой должны быть получены данные схемы.

database - база данных, в которой определена целевая таблица.

Возвращаемое значение

Возвращает объект TableSchema со списком колонок таблицы.

getTableSchemaFromQuery(String sql)

Получает схему из SQL выражения.

Сигнатуры

Параметры

sql - SQL выражение "SELECT", для которого должна быть возвращена схема.

Возвращаемое значение

Возвращает объект TableSchema с колонками, соответствующими SQL выражению.

TableSchema

register(Class<?> clazz, TableSchema schema)

Компилирует слой сериализации и десериализации для Java класса, используемого для записи/чтения данных с использованием schema. Метод создаст сериализатор и десериализатор для соответствующей пары геттер/сеттер и соответствующей колонки. Сопоставление колонки определяется путем извлечения её имени из имени метода. Например, getFirstName будет соответствовать колонке first_name или firstname.

Сигнатуры

Параметры

clazz - класс, представляющий POJO, используемый для чтения/записи данных.

schema - схема данных, используемая для сопоставления с свойствами POJO.

Примеры

Usage Examples

Полные примеры кода хранятся в репозитории в папке 'example' folder:

  • client-v2 - основной набор примеров.
  • demo-service - пример того, как использовать клиент в приложении Spring Boot.
  • demo-kotlin-service - пример того, как использовать клиент в приложении Ktor (Kotlin).