通过JDBC方式连接
前提条件
- 用户需要具备以下技能:
- 熟悉计算机基础知识。
- 了解java编程语言。
- 了解JDBC基础知识。
- 下载官方ClickHouse的JDBC驱动。
- 通过JDBC连接HTAP数据库,代码中的JDBC链接格式如下:
jdbc:clickhouse://<instance_ip>:<instance_port>/<database_name>
参数
说明
<instance_ip>
请替换为实例的IP地址。
说明:- 如果通过弹性云服务器连接,“instance_ip”是实例的“读写内网地址”。您可以在该实例“基本信息”页面的“网络信息”区域查看。
- 如果通过公网连接,“instance_ip”为该实例已绑定的“弹性公网IP”,即读写公网地址。您可以在该实例““基本信息”页面的“网络信息”区域查看。
<instance_port>
请替换为实例的数据库端口,默认为8123。
说明:您可以在该实例“基本信息”页面的“网络信息”区域查看。
<database_name>
请替换为连接实例使用的数据库名。
代码示例
代码示例如下(连接HTAP数据库的java代码),其他语言,可以参考ClickHouse官方文档。
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.sql.SQLException; public class JDBCTest { static final String IP = "*.*.*.*"; //实例的IP地址 // 认证使用用户名和密码直接写在代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。 // 本示例中以用户名和密码保存在环境变量中为例,运行本示例前请先在环境变量中设置环境变量EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV(环境变量名称请根据自身情况进行设置)。 static final String USER =System.getenv("EXAMPLE_USERNAME_ENV"); //用户名 static final String PASS = System.getenv("EXAMPLE_PASSWORD_ENV"); //密码 public static void main(String[] args) { Connection conn = null; Statement stmt = null; String url = "jdbc:clickhouse://" + IP + ":8123"; try { Class.forName("ru.yandex.clickhouse.ClickHouseDriver"); conn = DriverManager.getConnection(url, USER, PASS); stmt = conn.createStatement(); String sql = "show databases;"; ResultSet rs = stmt.executeQuery(sql); int columns = rs.getMetaData().getColumnCount(); for (int i = 1; i <= columns; i++) { System.out.print(rs.getMetaData().getColumnName(i)); System.out.print("\t"); } while (rs.next()) { System.out.println(); for (int i = 1; i <= columns; i++) { System.out.print(rs.getObject(i)); System.out.print("\t"); } } rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { se.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { // release resource .... } } }