随笔 - 597  文章 - 4  评论 - 445  阅读 - 424万

使用Jdbc的方式连接Clickhouse列式数据库

1、Clickhouse连接端口默认8123,但是Clickhouse默认情况下不允许其他设备进行http连接,所以需要更改clickhouse的默认配置:

1 [root@master local]# vim /etc/clickhouse-server/config.xml

新增一行,默认是注释的,让本地服务可以远程连接远程部署的Clickhouse服务,如下所示:

此设置是允许任何设备进行连接,配置好了之后就可以API连接。创建一个maven项目,然后引入Clickhouse提供的依赖坐标即可,如下所示:

复制代码
 1 <project xmlns="http://maven.apache.org/POM/4.0.0"
 2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
 4     https://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6     <groupId>com.bie</groupId>
 7     <artifactId>clickhouse</artifactId>
 8     <version>0.0.1-SNAPSHOT</version>
 9 
10     <dependencies>
11         <dependency>
12             <groupId>ru.yandex.clickhouse</groupId>
13             <artifactId>clickhouse-jdbc</artifactId>
14             <version>0.2.6</version>
15         </dependency>
16     </dependencies>
17 </project>
复制代码

然后搞一个测试类,和连mysql其实一样,将驱动包,url改成Clickhouse即可,如下所示:

复制代码
 1 package com.bie.utils;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.ResultSet;
 6 import java.sql.ResultSetMetaData;
 7 import java.sql.SQLException;
 8 import java.sql.Statement;
 9 
10 public class ClickhouseUtils {
11 
12     private static Connection connection = null;
13 
14     static {
15         try {
16             Class.forName("ru.yandex.clickhouse.ClickHouseDriver");// 驱动包
17             String url = "jdbc:clickhouse://192.168.110.133:8123/system";// url路径
18             String user = "default";// 账号
19             String password = "";// 密码
20             connection = DriverManager.getConnection(url, user, password);
21         } catch (Exception e) {
22             e.printStackTrace();
23         }
24     }
25 
26     public static void main(String[] args) throws SQLException {
27         Statement statement = connection.createStatement();
28         ResultSet resultSet = statement.executeQuery("select * from system.functions");
29         ResultSetMetaData metaData = resultSet.getMetaData();
30         int columnCount = metaData.getColumnCount();
31         while (resultSet.next()) {
32             for (int i = 1; i <= columnCount; i++) {
33                 System.out.println(metaData.getColumnName(i) + ":" + resultSet.getString(i));
34             }
35         }
36     }
37 
38 }
复制代码

直接运行,发现没有啥子问题,就说明配置对了,maven构建项目,开发工具eclipse。

 

posted on   别先生  阅读(10589)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
历史上的今天:
2017-02-19 Struts2的常见的配置文件介绍
2017-02-19 第一个Struts2实例之hello world!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示