Java(116):Java通过jdbc连接clickhouse

dbeaver查询版本:select version();      20.3.12.112

Java通过jdbc连接clickhouse

1、pom.xml引用

        
        
            com.clickhouse
            clickhouse-jdbc
            0.3.2
        

2、建表语句

CREATE TABLE regre_one.ch_string (
`ID` String,
 `aes` String,
 `sm4` String,
 `sm4_a` String,
 `email` String,
 `phone` String,
 `ssn` String,
 `military` String,
 `passport` String,
 `intelssn` String,
 `intelpassport` String,
 `intelmilitary` String,
 `intelganghui` String,
 `inteltaitonei` String,
 `credit_card_short` String,
 `credit_card_long` String,
 `job` String
) ENGINE = MergeTree() PRIMARY KEY ID ORDER BY ID SETTINGS index_granularity = 8192;

3、Java连接

连接方式和其他关系型数据库没有区别。

package utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
 * @author : HMF
 * @Description :
 * @Date : Created in 22:22 2022/12/27
 */
public class dbUtils {
    public Connection con;

    dbUtils() {
        //直接过数据库clickhouse
        String driver = "ru.yandex.clickhouse.ClickHouseDriver";
        String url = "jdbc:clickhouse://10.1.1.112:8123/regre_one";
        String user = "default";
        String password = "xxxxx";

        try {
            Class.forName(driver);
            con = DriverManager.getConnection(url, user, password);
            if (!con.isClosed()) {
                System.out.println("Open DB Connection success");
            }
        }catch (Exception e) {
            e.printStackTrace();
            System.exit(1);
        }
    }

    public static void main(String[] args) {
        dbUtils c = new dbUtils();
        c.DBExecute("");
        c.DBExecute("INSERT INTO ch_string (ID,aes) VALUES (1, '小芬')");
        c.DBQuery("select * from ch_string");

        System.exit(0);
    }

    void DBExecute(String sqlStr) {
        try {
            Statement statement = con.createStatement();
            boolean result = statement.execute(sqlStr);
            System.out.println("+++++ execute sql: "+sqlStr);
            statement.close();
        }catch(Exception e) {
            e.printStackTrace();
        }
    }

    void DBQuery(String sqlStr)  {
        try {
            Statement statement = con.createStatement();
            ResultSet rs = statement.executeQuery(sqlStr);

            int columnCount = rs.getMetaData().getColumnCount();

            System.out.println("+++++ query sql: "+sqlStr);
            while(rs.next()){
                String result = "";
                for (int i=0; i

结果展示:

参考:

https://www.cnblogs.com/MrYang-11-GetKnow/p/15818479.html

你可能感兴趣的:(java相关,java,clickhouse,数据库)