springboot+clickhouse

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MadCode2222222222222/article/details/89955161

docker+centos7安装clickhouse

https://blog.csdn.net/MadCode2222222222222/article/details/89952043

pom.xml中添加:

<dependency>
    <groupId>ru.yandex.clickhouse</groupId>
    <artifactId>clickhouse-jdbc</artifactId>
    <version>0.1.40</version>
</dependency>

application.yml

clickhouse:
  address: jdbc:clickhouse://192.168.159.128:8123
  username: default
  password:
  db: default
  socketTimeout: 600000

注意:ip为centos7虚拟器ip

ClickHouseUtil
package com.todd.clickhouse.utils;

import com.alibaba.fastjson.JSONObject;
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.*;

@Component
public class ClickHouseUtil {

    private static String clickhouseAddress;

    private static String clickhouseUsername;

    private static String clickhousePassword;

    private static String clickhouseDB;

    private static Integer clickhouseSocketTimeout;

    @Value("${clickhouse.address}")
    public void setClickhouseAddress(String address) {
        ClickHouseUtil.clickhouseAddress = address;
    }

    @Value("${clickhouse.username}")
    public void setClickhouseUsername(String username) {
        ClickHouseUtil.clickhouseUsername = username;
    }

    @Value("${clickhouse.password}")
    public void setClickhousePassword(String password) {
        ClickHouseUtil.clickhousePassword = password;
    }

    @Value("${clickhouse.db}")
    public void setClickhouseDB(String db) {
        ClickHouseUtil.clickhouseDB = db;
    }

    @Value("${clickhouse.socketTimeout}")
    public void setClickhouseSocketTimeout(Integer socketTimeout) {
        ClickHouseUtil.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;
    }


}

测试:

 @Test
    public void creatTable() {


        try {
            Connection connection = ClickHouseUtil.getConn();
            Statement statement = connection.createStatement();
            statement.executeQuery("create table default.example(name String, age UInt8) Engine=Log");
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

未完待续。。。

猜你喜欢

转载自blog.csdn.net/MadCode2222222222222/article/details/89955161