dbeaver查询版本:select version(); 20.3.12.112
Java通过jdbc连接clickhouse
1、pom.xml引用
<!-- https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc -->
<dependency>
<groupId>com.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.3.2</version>
</dependency>
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<columnCount; i++) {
result += "\t" + rs.getString(i+1);
}
System.out.println(result);
}
rs.close();
statement.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
结果展示:
参考: