ClickHouse的使用

一、使用Java操作ClickHouse

1、构建maven工程
2、​​​​​​​导入依赖
<!-- Clickhouse --> <dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.2.2</version> </dependency>
3、​​​​​​​​​​​​​​创建包结构

java程序包目录创建

包名

说明

cn.it.clickhouse

代码所在的包目录

4、代码案例
package cn.it.demo; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 使用JDBC操作ClickHouse */ public class ClickHouseJDBC { public static void main(String[] args) { String sqlDB = "show databases";//查询数据库 String sqlTab = "show tables";//查看表 String sqlCount = "select count(*) count from ontime";//查询ontime数据量 exeSql(sqlDB); exeSql(sqlTab); exeSql(sqlCount); } public static void exeSql(String sql){ String address = "jdbc:clickhouse://node2:8123/default"; Connection connection = null; Statement statement = null; ResultSet results = null; try { Class.forName("ru.yandex.clickhouse.ClickHouseDriver"); connection = DriverManager.getConnection(address); statement = connection.createStatement(); long begin = System.currentTimeMillis(); results = statement.executeQuery(sql); long end = System.currentTimeMillis(); System.out.println("执行("+sql+")耗时:"+(end-begin)+"ms"); ResultSetMetaData rsmd = results.getMetaData(); List<Map> list = new ArrayList(); while(results.next()){ Map map = new HashMap(); for(int i = 1;i<=rsmd.getColumnCount();i++){ map.put(rsmd.getColumnName(i),results.getString(rsmd.getColumnName(i))); } list.add(map); } for(Map map : list){ System.err.println(map); } } catch (Exception e) { e.printStackTrace(); }finally {//关闭连接 try { if(results!=null){ results.close(); } if(statement!=
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐