public static String getFrameworksDetected() {
            if (frameworksDetected == null) {
                Set<String> inferredFrameworks = new LinkedHashSet<>();
                for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
                    for (String framework : FRAMEWORKS_TO_DETECT) {
                        if (ste.toString().contains(framework)) {
                            inferredFrameworks.add(String.format("(%s)", framework));
                        }
                    }
                }

                frameworksDetected = String.join("; ", inferredFrameworks);
            }
            return frameworksDetected;
        }
JDBC driver for ClickHouse. It takes a connection string like below for
connecting to ClickHouse server:
{@code jdbc:(ch|clickhouse)[:<protocol>]://[<user>[:<password>]@]<host>[:<port>][/<db>][?<parameter=value>,[<parameter=value]]][#<tag>[,<tag>]]}

<p>
For examples:
<ul>
<li>{@code jdbc:clickhouse://localhost:8123/system}</li>
<li>{@code jdbc:clickhouse://admin:password@localhost/system?socket_time=30}</li>
<li>{@code jdbc:clickhouse://localhost/system?protocol=grpc}</li>
</ul>
clickhouse-jdbc/src/main/java/com/clickhouse/jdbc/DriverV1.java