5
5
- [ 1. Java API 概述] ( #1-java-api-概述 )
6
6
- [ 2. 建立DolphinDB连接] ( #2-建立dolphindb连接 )
7
7
- [ 2.1 DBConnection] ( #21-dbconnection )
8
- - [ 2.2 ExclusiveDBConnectionPool] ( #22-exclusivedbconnectionpool )
8
+ - [ 2.2 SimpleDBConnectionPool 连接池] ( #22-simpledbconnectionpool-连接池 )
9
+ - [ 2.3 ExclusiveDBConnectionPool 任务池] ( #23-exclusivedbconnectionpool-任务池 )
9
10
- [ 3.运行DolphinDB脚本] ( #3运行dolphindb脚本 )
10
11
- [ 4. 运行DolphinDB函数] ( #4-运行dolphindb函数 )
11
12
- [ 5. 上传本地对象到DolphinDB服务器] ( #5-上传本地对象到dolphindb服务器 )
29
30
30
31
## 1. Java API 概述
31
32
32
- Java API需要运行在Java 1.8或以上环境。使用Java API前,引入以下maven依赖(以1.30.22 .1为例)
33
+ Java API需要运行在Java 1.8或以上环境。使用Java API前,引入以下maven依赖(以2.00.11 .1为例)
33
34
``` java
34
35
< ! -- https: // mvnrepository.com/artifact/com.dolphindb/dolphindb-javaapi -->
35
36
< dependency>
36
37
< groupId> com. dolphindb< / groupId>
37
38
< artifactId> dolphindb- javaapi< / artifactId>
38
- < version> 1.30 . 22 .1< / version>
39
+ < version> 2.00 . 11 .1< / version>
39
40
< / dependency>
40
41
```
41
42
Java API遵循面向接口编程的原则。Java API使用接口类Entity来表示DolphinDB返回的所有数据类型。在Entity接口类的基础上,根据DolphinDB的数据类型,Java API提供了7种拓展接口,分别是scalar,vector,matrix,set,dictionary,table和chart。这些接口类都包含在com.xxdb.data包中。
@@ -137,15 +138,103 @@ boolean success = conn.connect("192.168.1.2", 24120, "admin", "123456", enableHi
137
138
注意:不支持仅开启负载均衡功能的情况。
138
139
139
140
当需要在应用程序里定义和使用自定义函数时,可以使用 initialScript 参数传入函数定义脚本。这样做的好处是:一、无需每次运行` run ` 函数的时候重复定义这些函数。二、API提供自动重连机制,断线之后重连时会产生新的会话。如果 initialScript 参数不为空,API会在新的会话中自动执行初始化脚本重新注册函数。在一些网络不是很稳定但是应用程序需要持续运行的场景里,这个参数会非常有用。
141
+
140
142
``` java
141
143
boolean success = conn. connect(" localhost" , 8848 , " admin" , " 123456" , " " );
142
144
```
143
- ### 2.2 ExclusiveDBConnectionPool
144
- ExclusiveDBConnectionPool可以复用多个DBConnection。可以直接使用ExclusiveDBConnectionPool.run执行命令,也可以通过execute方法执行任务,然后使用BasicDBTask的getResults方法获取该任务的执行结果。
145
+
146
+ ### 2.2 SimpleDBConnectionPool 连接池
147
+
148
+ Java API 自 2.00.11.1 版本起提供 ` SimpleDBConnectionPool ` 连接池,以此对连接进行管理和重用。
149
+
150
+ 在使用时,先通过 ` SimpleDBConnectionPoolConfig ` 设置连接池的具体参数,然后在构造连接池时,将 ` SimpleDBConnectionPoolConfig ` 作为 ` SimpleDBConnectionPool ` 的配置参数。` SimpleDBConnectionPool ` 将根据传递的参数进行解析、初始化连接等操作。连接池创建成功后,用户可以通过 ` getConnection ` 方法获取一个连接进行使用。使用完毕后,用户可通过 ` DBConnection.close() ` 释放连接。连接重回连接池后属于闲置状态,之后可以再次被获取使用。
151
+
152
+ ** SimpleDBConnectionPoolConfig 说明**
153
+
154
+ ` SimpleDBConnectionPoolConfig ` 仅可通过 setXxx 方法来配置参数,示例如下:
155
+
156
+ ``` java
157
+ SimpleDBConnectionPoolConfig config = new SimpleDBConnectionPoolConfig ();
158
+ config. setHostName(" 1sss" );
159
+ config. setPort(PORT );
160
+ config. setUserId(" admin" );
161
+ config. setPassword(" 123456" );
162
+ config. setInitialPoolSize(5 );
163
+ config. setEnableHighAvailability(false );
164
+ ```
165
+
166
+ 目前 ` SimpleDBConnectionPoolConfig ` 支持的参数如下:
167
+
168
+ - ` hostName ` :IP,默认为 localhost。
169
+ - ` port ` :端口,默认为 8848。
170
+ - ` userId ` :用户名,默认为””。
171
+ - ` password ` :密码,默认为””。用户名和密码仅填写其中一个,创建连接不登录;用户名和密码填写正确,创建连接且登录;用户名和密码填写错误,创建连接失败
172
+ - ` initialPoolSize ` :连接池的初始连接数,默认为 5。
173
+ - ` initialScript ` :表示初始化的脚本,默认为空。
174
+ - ` compress ` :表示是否在下载时对数据进行压缩,默认值为 false。该模式适用于大数据量的查询。压缩数据后再传输,这可以节省网络带宽,但会增加 DolphinDB、API 的计算量。
175
+ - ` useSSL ` :表示是否使用 SSL 连接,默认值为 false 。注意:若要开启 SSL 连接,服务器端的配置文件(如果是单节点为 dolphindb.cfg,如果是集群为 cluster.cfg)须同时配置功能参数 ` enableHTTPS=true ` 。
176
+ - ` usePython ` :表示是否开启 Python 解析,默认值为 false。
177
+ - ` loadBalance ` :表示是否开启负载均衡,默认为 false,为 true 时注意:
178
+ - 如果未指定` highAvailabilitySites ` , Java API 会对 server 集群的所有节点采取轮询策略的负载均衡;
179
+ - 如果指定了` highAvailabilitySites ` ,Java API 将对 ` highAvailabilitySites ` 数组中的连接节点执行轮询策略的负载均衡。
180
+ - ` enableHighAvailability ` :表示是否开启高可用,默认为 false。
181
+ - ` highAvailabilitySites ` :表示开启高可用情况下指定填入的主机名和端口号数组,默认为 null。
182
+
183
+ ` SimpleDBConnectionPool ` ** 类的相关方法**
184
+
185
+ | ** 方法名** | ** 详情** |
186
+ | ---------------------------------------- | ----------- |
187
+ | SimpleDBConnectionPool(simpleDBConnectionPoolConfig) | 构造方法 |
188
+ | DBConnection getConnection() | 从连接池中获取一个连接 |
189
+ | close() | 关闭连接池 |
190
+ | isClosed() | 查看连接池是否关闭 |
191
+ | getActiveConnectionsCount() | 获取当前使用中的连接数 |
192
+ | getIdleConnectionsCount() | 获取当前空闲的连接数 |
193
+ | getTotalConnectionsCount() | 获取总连接数 |
194
+ | DBConnection.close() | 释放当前连接 |
195
+
196
+ 注意:该处的 ` DBConnection.close() ` 方法区别于 DBConnection 类中关闭当前会话的功能,此处仅用于将使用 ` getConnection ` 获取的连接释放到连接池。
197
+
198
+ ** 连接池使用示例**
199
+
200
+ ``` java
201
+ // 设置连接池参数
202
+ SimpleDBConnectionPoolConfig config = new SimpleDBConnectionPoolConfig ();
203
+ config. setHostName(" 1sss" );
204
+ config. setPort(PORT );
205
+ config. setUserId(" admin" );
206
+ config. setPassword(" 123456" );
207
+ config. setInitialPoolSize(5 );
208
+ config. setEnableHighAvailability(false );
209
+
210
+ // 初始化连接池
211
+ SimpleDBConnectionPool pool = new SimpleDBConnectionPool (config);
212
+
213
+ // 从连接池中获取一个连接
214
+ DBConnection conn = pool. getConnection();
215
+ conn. run(" ..." ); // 执行脚本
216
+
217
+ // 释放当前连接
218
+ conn. close();
219
+
220
+ // 获取当前使用中的连接数
221
+ int activeConns = pool. getActiveConnectionsCount();
222
+
223
+ // 获取当前空闲的连接数
224
+ int idleConns = pool. getIdleConnectionsCount();
225
+
226
+ // 关闭连接池
227
+ pool. close();
228
+
229
+ ```
230
+
231
+ ### 2.3 ExclusiveDBConnectionPool 任务池
232
+
233
+ Java API 提供 ExclusiveDBConnectionPool 任务池。用户可以通过 ` execute ` 方法执行任务,然后使用BasicDBTask 的 ` getResult ` 方法获取该任务的执行结果。
145
234
146
235
| 方法名 | 详情 |
147
236
| :------------- | :-------------|
148
- | ExclusiveDBConnectionPool(string host, int port, string uid,string pwd, int count, bool loadBalance,bool enableHighAvailability, string[ ] highAvailabilitySites = null, string initialScript, bool compress = false, bool useSSL = false, bool usePython = false)| 构造函数 ,参数count为连接数,loadBalance为true会连接不同的节点|
237
+ | ExclusiveDBConnectionPool(string host, int port, string uid,string pwd, int count, bool loadBalance,bool enableHighAvailability, string[ ] highAvailabilitySites = null, string initialScript, bool compress = false, bool useSSL = false, bool usePython = false)| 构造方法 ,参数count为连接数,loadBalance为true会连接不同的节点|
149
238
| execute(IDBTask task)| 执行任务|
150
239
| execute(List<IDBTask > tasks)| 执行批量任务|
151
240
| getConnectionCount()| 获取连接数|
@@ -161,7 +250,7 @@ BasicDBTask包装了需要执行的脚本和参数。
161
250
| getResult()| 获取脚本运行结果|
162
251
| getErrorMsg()| 获取任务运行时发生的异常信息|
163
252
164
- 建立一个DBConnection连接数为10的连接池 。
253
+ 建立一个数量为 10 的任务池 。
165
254
166
255
``` java
167
256
ExclusiveDBConnectionPool pool = new ExclusiveDBConnectionPool (hostName, port, userName, passWord, 10 , false , false );
0 commit comments