SpringBoot配置Clickhouse的示例代碼
一、加入clickhouse jar包依賴
<dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.1.53</version> </dependency>
二、配置Clickhouse數(shù)據(jù)庫連接屬性配置文件,clickhouse默認(rèn)沒有密碼
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)文章
Spring代理對象導(dǎo)致的獲取不到原生對象注解的解決
本文主要介紹了Spring代理對象導(dǎo)致的獲取不到原生對象注解的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04mybatis-plus生成mapper擴(kuò)展文件的方法
這篇文章主要介紹了mybatis-plus生成mapper擴(kuò)展文件的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09SpringBoot集成Nacos的項(xiàng)目實(shí)踐
本文主要介紹了SpringBoot集成Nacos的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07關(guān)于mybatis-plus邏輯刪除自動填充更新時間的問題
mybatis-plus是對mybatis的增強(qiáng),mybatis-plus更像是面向?qū)ο缶幊?,?shù)據(jù)庫基本CRUD的操作可以不用手動編寫SQL語句,大大提高了開發(fā)的效率,這篇文章主要介紹了mybatis-plus邏輯刪除自動填充更新時間問題,需要的朋友可以參考下2022-07-07Java使用POI導(dǎo)出Excel(二):多個sheet
這篇文章介紹了Java使用POI導(dǎo)出Excel的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10全面剖析java 數(shù)據(jù)類型與運(yùn)算符
這篇文章主要介紹了Java基本數(shù)據(jù)類型和運(yùn)算符,結(jié)合實(shí)例形式詳細(xì)分析了java基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運(yùn)算符、邏輯運(yùn)算符等相關(guān)原理與操作技巧,需要的朋友可以參考下2021-09-09Springboot?整合?RocketMQ?收發(fā)消息的配置過程
這篇文章主要介紹了Springboot?整合?RocketMQ?收發(fā)消息,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12Java中使用Closeable接口自動關(guān)閉資源詳解
這篇文章主要介紹了Java中使用Closeable接口自動關(guān)閉資源詳解,Closeable接口繼承于AutoCloseable,主要的作用就是自動的關(guān)閉資源,其中close()方法是關(guān)閉流并且釋放與其相關(guān)的任何方法,如果流已被關(guān)閉,那么調(diào)用此方法沒有效果,需要的朋友可以參考下2023-12-12Java多線程鎖機(jī)制相關(guān)原理實(shí)例解析
這篇文章主要介紹了Java多線程鎖機(jī)制相關(guān)原理實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08