@@ -10,7 +10,7 @@ title: Java
10
10
11
11
要下载 Databend JDBC 驱动:
12
12
13
- 1 . 前往 Maven 中央仓库:https://repo1.maven.org/maven2/com/databend/databend-jdbc/
13
+ 1 . 访问 Maven 中央仓库:https://repo1.maven.org/maven2/com/databend/databend-jdbc/
14
14
2 . 点击最新版本的目录。
15
15
3 . 下载 jar 文件,例如,_ databend-jdbc-0.1.1.jar_ 。
16
16
@@ -64,13 +64,13 @@ Databend JDBC 驱动以 JAR 文件形式提供,可以直接集成到您的基
64
64
65
65
Databend 的 JDBC 驱动通常遵循 JDBC 规范。以下是一些常见基本行为、相关关键函数及其原理的列表。
66
66
67
- | 基本行为 | 关键功能 | 原理 |
68
- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
69
- | 建立连接 | ` DriverManager.getConnection ` , ` Properties.setProperty ` | ` getConnection ` 使用提供的连接字符串与 Databend 建立连接。<br /><br />` Properties ` 对象用于构造连接参数,例如 ` user ` 和 ` password ` ,这些参数也可以在连接字符串中指定。 |
70
- | 执行查询 | ` Statement.createStatement() ` , ` Statement.execute() ` | ` Statement.execute() ` 通过 ` v1/query ` 接口执行查询。 |
71
- | 批量插入 | ` Connection.prepareStatement() ` , ` PrepareStatement.setInt() ` , ` PrepareStatement.setString() ` , ` PrepareStatement.addBatch() ` , ` PrepareStatement.executeBatch() ` , 等。 | Databend 支持使用 ` PrepareStatement ` 对象进行批量插入和替换(` INSERT INTO ` 和 ` REPLACE INTO ` )。<br /><br />` PrepareStatement.setXXX() ` 方法用于将值绑定到语句的参数。<br /><br />` PrepareStatement.addBatch() ` 将尽可能多的数据添加到创建的语句对象的批处理中。<br /><br />` PrepareStatement.executeBatch() ` 将数据上传到内置 Stage 并执行插入/替换操作,利用 [ Stage 附件 ] ( /developer/apis/http#stage-attachment ) 。 |
72
- | 上传文件到内部 Stage | ` Connection.uploadStream ` | 数据将被上传到 Stage。默认情况下,使用 ` PRESIGN UPLOAD ` 获取 URL,或者如果 PRESIGN 被禁用 ,则使用 ` v1/upload_to_stage ` API。 |
73
- | 从内部 Stage 下载文件 | ` Connection.downloadStream ` | 数据将使用 ` PRESIGN DOWNLOAD ` 获取 URL 从 Stage 下载。 |
67
+ | 基本行为 | 关键功能 | 原理 |
68
+ | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
69
+ | 建立连接 | ` DriverManager.getConnection ` , ` Properties.setProperty ` | ` getConnection ` 使用提供的连接字符串与 Databend 建立连接。<br /><br />` Properties ` 对象用于构造连接参数,例如 ` user ` 和 ` password ` ,这些参数也可以在连接字符串中指定。 |
70
+ | 执行查询 | ` Statement.createStatement() ` , ` Statement.execute() ` | ` Statement.execute() ` 通过 ` v1/query ` 接口执行查询。 |
71
+ | 批量插入 | ` Connection.prepareStatement() ` , ` PrepareStatement.setInt() ` , ` PrepareStatement.setString() ` , ` PrepareStatement.addBatch() ` , ` PrepareStatement.executeBatch() ` , 等。 | Databend 支持使用 ` PrepareStatement ` 对象进行批量插入和替换(` INSERT INTO ` 和 ` REPLACE INTO ` )。<br /><br />` PrepareStatement.setXXX() ` 方法用于将值绑定到语句的参数。<br /><br />` PrepareStatement.addBatch() ` 将尽可能多的数据添加到创建的语句对象的批处理中。<br /><br />` PrepareStatement.executeBatch() ` 将数据上传到内置 Stage 并执行插入/替换操作,利用 [ Stage Attachment ] ( /developer/apis/http#stage-attachment ) 。 |
72
+ | 上传文件到内部 Stage | ` Connection.uploadStream ` | 数据将被上传到 Stage。默认情况下,使用 ` PRESIGN UPLOAD ` 获取 URL,或者如果禁用了 PRESIGN,则使用 ` v1/upload_to_stage ` API。 |
73
+ | 从内部 Stage 下载文件 | ` Connection.downloadStream ` | 数据将使用 ` PRESIGN DOWNLOAD ` 获取 URL 从 Stage 下载。 |
74
74
75
75
## 配置连接字符串
76
76
@@ -80,7 +80,7 @@ Databend 的 JDBC 驱动通常遵循 JDBC 规范。以下是一些常见基本
80
80
jdbc: databend: // <username>:<password>@<host_port>/<database>?<connection_params>
81
81
```
82
82
83
- ` connection_params ` 指的是一系列一个或多个格式为 ` param=value ` 的参数 。每个参数应由 & 字符分隔,连接字符串中不应有任何空格。这些参数可以在连接字符串中设置,也可以在传递给 DriverManager.getConnection() 方法的 Properties 对象中设置。例如:
83
+ ` connection_params ` 指的是一系列一个或多个 ` param=value ` 格式的参数 。每个参数应由 & 字符分隔,连接字符串中不应有任何空格。这些参数可以在连接字符串中设置,也可以在传递给 ` DriverManager.getConnection() ` 方法的 Properties 对象中设置。例如:
84
84
85
85
``` java
86
86
Properties props = new Properties ();
@@ -101,9 +101,9 @@ package com.example;
101
101
import java.sql.* ;
102
102
import java.util.Properties ;
103
103
104
- public class demo {
104
+ public class Main {
105
105
// 以连接到本地 Databend 并使用名为 'user1' 和密码 'abc123' 的 SQL 用户为例。
106
- // 请根据实际情况使用您自己的值 ,同时保持相同的格式。
106
+ // 请随意使用您自己的值 ,同时保持相同的格式。
107
107
static final String DB_URL = " jdbc:databend://127.0.0.1:8000" ;
108
108
109
109
public static void main (String [] args ) throws Exception {
@@ -126,13 +126,13 @@ public class demo {
126
126
stmt. close();
127
127
conn. close();
128
128
System . exit(0 );
129
+ }
130
+ }
129
131
```
130
132
131
- ### 示例:复制到表或合并到表
133
+ ### 示例:复制或合并到表
134
+
132
135
133
- ```java
134
- // 示例代码待补充
135
- ```
136
136
137
137
``` java
138
138
public void copyInto(String tableName, List<String > files) throws Exception {
@@ -158,13 +158,13 @@ public class demo {
158
158
159
159
::: tip
160
160
161
- 1. 由于诸如 SELECT 、COPY INTO 和 MERGE INTO 等 SQL 命令返回一个 ResultSet 对象,因此在访问数据之前需要调用 rs. next()。如果不这样做,可能会导致查询被取消。如果你不打算检索结果 ,可以使用 while 循环(while (r. next()){})遍历 ResultSet 以避免此问题。
162
- 2. 对于其他非查询类型的 SQL 命令,如 CREATE TABLE 或 DROP TABLE ,可以直接调用 statement. execute()。
161
+ 1 . 由于 SELECT、COPY INTO 和 MERGE INTO 等 SQL 命令返回一个 ResultSet 对象,因此需要在访问数据之前调用 rs.next()。否则,查询可能会被取消。如果不打算检索结果 ,可以使用 while 循环(while (r.next()){})遍历 ResultSet 以避免此问题。
162
+ 2 . 对于 CREATE TABLE 或 DROP TABLE 等非查询类型的 SQL 命令 ,可以直接调用 statement.execute()。
163
163
:::
164
164
165
165
### 示例:批量插入
166
166
167
- 在你的 Java 应用程序代码中,可以通过在 INSERT 语句中绑定参数并调用 addBatch() 和 executeBatch() 来一次性插入多行。
167
+ 在您的 Java 应用程序代码中,可以通过在 INSERT 语句中绑定参数并调用 addBatch() 和 executeBatch() 来一次性插入多行。
168
168
169
169
例如,以下代码向包含 INT 列和 VARCHAR 列的表中插入两行。该示例在 INSERT 语句中绑定值并调用 addBatch() 和 executeBatch() 来执行批量插入。
170
170
@@ -259,15 +259,15 @@ pstmt.close();
259
259
260
260
### 示例:与 Databend Cloud 集成
261
261
262
- 在开始之前,请确保你已成功创建了一个仓库并获取了连接信息。如何操作,请参阅 [连接到仓库](/ guides/ cloud/ using- databend- cloud/ warehouses#connecting)。
262
+ 在开始之前,请确保您已成功创建了一个仓库并获取了连接信息。具体操作方法请参见 [ 连接到仓库] ( /guides/cloud/using-databend-cloud/warehouses#connecting ) 。
263
263
264
264
#### 步骤 1. 使用 Maven 添加依赖
265
265
266
266
``` xml
267
267
<dependency >
268
268
<groupId >com.databend</groupId >
269
269
<artifactId >databend-jdbc</artifactId >
270
- < version> 0.2 . 1 < / version>
270
+ <version >0.2.8 </version >
271
271
</dependency >
272
272
```
273
273
@@ -278,11 +278,7 @@ pstmt.close();
278
278
``` java
279
279
package databend_cloud ;
280
280
281
- import java.sql. SQLException ;
282
- import java.sql. DriverManager ;
283
- import java.sql. Connection ;
284
- import java.sql. Statement ;
285
- import java.sql. ResultSet ;
281
+ import java.sql.* ;
286
282
import java.util.Properties ;
287
283
288
284
public class sample {
@@ -318,26 +314,26 @@ public class sample {
318
314
ps. setString(5 , " [1,2,3,4,5]" );
319
315
ps. addBatch();
320
316
int [] ans = ps. executeBatch();
321
- Statement statement = c . createStatement();
322
-
323
- System . out. println(" execute select on object " );
324
- statement. execute(" SELECT * from objects_test1 " );
325
- ResultSet r = statement. getResultSet();
326
-
327
- while (r . next()) {
328
- System . out. println(r . getInt(1 ));
329
- System . out. println(r . getString(2 ));
330
- System . out. println(r . getTimestamp(3 ). toString());
331
- System . out. println(r . getString(4 ));
332
- System . out. println(r . getString(5 ));
317
+ Statement s = connection . createStatement();
318
+
319
+ System . out. println(" execute select on table " );
320
+ statement. execute(" SELECT * from sample_test " );
321
+ ResultSet r2 = statement. getResultSet();
322
+
323
+ while (r2 . next()) {
324
+ System . out. println(r2 . getInt(1 ));
325
+ System . out. println(r2 . getString(2 ));
326
+ System . out. println(r2 . getTimestamp(3 ). toString());
327
+ System . out. println(r2 . getString(4 ));
328
+ System . out. println(r2 . getString(5 ));
333
329
}
334
330
connection. close();
335
331
}
336
332
}
337
333
```
338
334
339
335
::: tip
340
- 在代码中替换 `{USER }, {PASSWORD }, {WAREHOUSE_HOST }, 和 {DATABASE }` 为你的连接信息 。如何获取连接信息,请参阅 [连接到仓库](/ guides/ cloud/ using- databend- cloud/ warehouses#connecting)。
336
+ 在代码中替换 ` {USER}, {PASSWORD}, {WAREHOUSE_HOST}, 和 {DATABASE} ` 为您的连接信息 。如何获取连接信息,请参见 [ 连接到仓库] ( /guides/cloud/using-databend-cloud/warehouses#connecting ) 。
341
337
:::
342
338
343
339
#### 步骤 3. 使用 Maven 运行示例
0 commit comments