clickhouse使用jdbc批量插入数据
时间: 2023-11-17 21:08:36 浏览: 139
你可以使用JDBC来批量插入数据到ClickHouse数据库。下面是一个简单的示例代码来演示如何使用JDBC批量插入数据:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class ClickHouseBatchInsert {
public static void main(String[] args) {
// JDBC连接信息
String url = "jdbc:clickhouse://localhost:8123/default";
String username = "your_username";
String password = "your_password";
// SQL插入语句
String sql = "INSERT INTO your_table (column1, column2, column3) VALUES (?, ?, ?)";
// 数据集
Object[][] data = {
{"value1_1", "value1_2", "value1_3"},
{"value2_1", "value2_2", "value2_3"},
{"value3_1", "value3_2", "value3_3"}
};
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
// 关闭自动提交
conn.setAutoCommit(false);
// 批量插入数据
for (Object[] row : data) {
for (int i = 0; i < row.length; i++) {
pstmt.setObject(i + 1, row[i]);
}
pstmt.addBatch();
}
// 执行批量插入
int[] result = pstmt.executeBatch();
// 提交事务
conn.commit();
System.out.println("成功插入 " + result.length + " 条数据");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,你需要将`url`、`username`和`password`替换为你实际的ClickHouse连接信息,将`your_table`替换为你要插入数据的目标表名。然后,根据你的数据集,调整`data`数组中的值和列数。
这个示例中使用了`PreparedStatement`来执行预编译的SQL语句,并使用`addBatch()`方法将批量插入的每一行添加到批处理中。最后,通过调用`executeBatch()`方法执行批处理操作,并使用`commit()`方法提交事务。
这样,你就可以使用JDBC批量插入数据到ClickHouse数据库了。希望对你有所帮助!如果有任何问题,请随时提问。
阅读全文