SpringBoot配置Clickhouse的示例代碼
更新時間:2022年02月18日 14:36:23 作者:元宇宙-Metaverse
這篇文章主要介紹了SpringBoot配置Clickhouse的示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考價值,需要的朋友可以參考下
一、加入clickhouse jar包依賴
<dependency>
<groupId>ru.yandex.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.1.53</version>
</dependency>二、配置Clickhouse數(shù)據(jù)庫連接屬性配置文件,clickhouse默認沒有密碼
spring:
datasource:
clickhouse:
address: jdbc:clickhouse://127.0.0.1:8123
username: default
password:
db: system
socketTimeout: 600000三、編寫Clickhouse數(shù)據(jù)庫連接操作工具類
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import ru.yandex.clickhouse.ClickHouseConnection;
import ru.yandex.clickhouse.ClickHouseDataSource;
import ru.yandex.clickhouse.settings.ClickHouseProperties;
import java.sql.*;
import java.util.*;
@Slf4j
@Component
public class ClickHouseConfig {
private static String clickhouseAddress;
private static String clickhouseUsername;
private static String clickhousePassword;
private static String clickhouseDB;
private static Integer clickhouseSocketTimeout;
@Value("${spring.datasource.clickhouse.address}")
public void setClickhouseAddress(String address) {
ClickHouseConfig.clickhouseAddress = address;
}
@Value("${spring.datasource.clickhouse.username}")
public void setClickhouseUsername(String username) {
ClickHouseConfig.clickhouseUsername = username;
@Value("${spring.datasource.clickhouse.password}")
public void setClickhousePassword(String password) {
ClickHouseConfig.clickhousePassword = password;
@Value("${spring.datasource.clickhouse.db}")
public void setClickhouseDB(String db) {
ClickHouseConfig.clickhouseDB = db;
@Value("${spring.datasource.clickhouse.socketTimeout}")
public void setClickhouseSocketTimeout(Integer socketTimeout) {
ClickHouseConfig.clickhouseSocketTimeout = socketTimeout;
public static Connection getConn() {
ClickHouseConnection conn = null;
ClickHouseProperties properties = new ClickHouseProperties();
properties.setUser(clickhouseUsername);
properties.setPassword(clickhousePassword);
properties.setDatabase(clickhouseDB);
properties.setSocketTimeout(clickhouseSocketTimeout);
ClickHouseDataSource clickHouseDataSource = new ClickHouseDataSource(clickhouseAddress,properties);
try {
conn = clickHouseDataSource.getConnection();
return conn;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
public static List<Map<String,String>> exeSql(String sql){
log.info("cliockhouse 執(zhí)行sql:" + sql);
Connection connection = getConn();
Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery(sql);
ResultSetMetaData rsmd = results.getMetaData();
List<Map<String,String>> list = new ArrayList<>();
while(results.next()){
Map<String,String> row = new HashMap<>();
for(int i = 1;i<=rsmd.getColumnCount();i++){
row.put(rsmd.getColumnName(i),results.getString(rsmd.getColumnName(i)));
}
list.add(row);
}
return list;
}四、是用測試方法執(zhí)行sql查詢數(shù)據(jù)

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
import java.util.Map;
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class ClickHouseConfigTest {
@Test
public void exeSql() {
log.info("===========測試開始============");
String sql="select cluster,shard_num from clusters";
List<Map<String,String>> result= ClickHouseConfig.exeSql(sql);
log.info("===========查詢技術(shù)============");
log.info("clickhouse查詢結(jié)果為:{}",result);
}
}測試成功

轉(zhuǎn)自:https://www.dianjilingqu.com/
到此這篇關(guān)于SpringBoot配置Clickhouse的文章就介紹到這了,更多相關(guān)SpringBoot配置Clickhouse內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于mybatis-plus邏輯刪除自動填充更新時間的問題
mybatis-plus是對mybatis的增強,mybatis-plus更像是面向?qū)ο缶幊?,?shù)據(jù)庫基本CRUD的操作可以不用手動編寫SQL語句,大大提高了開發(fā)的效率,這篇文章主要介紹了mybatis-plus邏輯刪除自動填充更新時間問題,需要的朋友可以參考下2022-07-07
Springboot?整合?RocketMQ?收發(fā)消息的配置過程
這篇文章主要介紹了Springboot?整合?RocketMQ?收發(fā)消息,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
Java中使用Closeable接口自動關(guān)閉資源詳解
這篇文章主要介紹了Java中使用Closeable接口自動關(guān)閉資源詳解,Closeable接口繼承于AutoCloseable,主要的作用就是自動的關(guān)閉資源,其中close()方法是關(guān)閉流并且釋放與其相關(guān)的任何方法,如果流已被關(guān)閉,那么調(diào)用此方法沒有效果,需要的朋友可以參考下2023-12-12

