概述
ClickHouse
有两种 JDBC
驱动实现。
两者间的主要区别如下:
- 驱动类加载路径不同,分别为
ru.yandex.clickhouse.ClickHouseDriver
和com.github.housepower.jdbc.ClickHouseDriver
- 默认连接端口不同,分别为
8123
和9000
(但经过测试,却是相反的) - 连接协议不同,官方驱动使用
HTTP
协议,而三方驱动使用TCP
协议
方式一:官方驱动:pom
依赖
只能使用 9000 端口
<!--驱动为ru.yandex.clickhouse.ClickHouseDriver-->
<dependency>
<groupId>ru.yandex.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.3.1</version>
</dependency>
代码实现
package com.imooc.clickhouse;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* 使用JDBC连接clickhouse
* 官方驱动:ru.yandex.clickhouse.ClickHouseDriver 只能使用9000端口
*/
public class clickhouseJDBC {
public static void main(String[] args) {
try {
Class.forName("ru.yandex.clickhouse.ClickHouseDriver");
String url = "jdbc:clickhouse://192.168.52.140:9000/default";
String user = "default";
String password = "";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from default.smt_table");
while (rs.next()){
System.out.println(rs.getString(1));
} catch (Exception e) {
e.printStackTrace();
}
}
}
方式二:第三方驱动:pom
依赖
使用 8213 或者 9000 端口都可以连接
<!--驱动为com.github.housepower.jdbc.ClickHouseDriver-->
<dependency>
<groupId>com.github.housepower</groupId>
<artifactId>clickhouse-native-jdbc</artifactId>
<version>1.6-stable</version>
</dependency>
代码实现
package com.imooc.clickhouse;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* 使用JDBC连接clickhouse
* 三方提供的驱动:com.github.housepower.jdbc.ClickHouseDriver 使用8213或者9000端口都可以连接
*/
public class clickhouseJDBC1 {
public static void main(String[] args) {
try {
Class.forName("com.github.housepower.jdbc.ClickHouseDriver");
String url = "jdbc:clickhouse://192.168.52.140:8123/default";
String user = "default";
String password = "";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from default.smt_table");
while (rs.next()){
System.out.println(rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
最后
以上就是还单身战斗机为你收集整理的Java连接操作ClickHouse的全部内容,希望文章能够帮你解决Java连接操作ClickHouse所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复