Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
f261f4b5
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
f261f4b5
编写于
4月 26, 2022
作者:
W
wade zhang
提交者:
GitHub
4月 26, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #11888 from taosdata/docs/TD-14869
docs: use same expression for rest api
上级
5829932c
a6984d7e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
25 deletion
+20
-25
docs-cn/14-reference/03-connector/java.mdx
docs-cn/14-reference/03-connector/java.mdx
+20
-25
docs-cn/14-reference/03-connector/tdengine-jdbc-connector.png
...-cn/14-reference/03-connector/tdengine-jdbc-connector.png
+0
-0
未找到文件。
docs-cn/14-reference/03-connector/java.mdx
浏览文件 @
f261f4b5
...
...
@@ -8,7 +8,6 @@ description: 此连接器基于标准 JDBC API 实现。
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import Preparition from './_preparition.mdx';
`taos-jdbcdriver` 是 TDengine 的官方 Java 语言连接器。Java 开发人员可以通过它开发存取 TDengine 数据库的应用软件。
...
...
@@ -16,11 +15,10 @@ import Preparition from './_preparition.mdx';
![tdengine-connector](tdengine-jdbc-connector.png)
上图显示了
三
种 Java 应用使用连接器访问 TDengine 的方式:
上图显示了
两
种 Java 应用使用连接器访问 TDengine 的方式:
- JDBC 原生连接:Java 应用在物理节点 1(pnode1)上使用 JDBC 原生连接的 API ,直接调用客户端驱动(libtaos.so 或 taos.dll)的 API 将写入和查询请求发送到位于物理节点 2(pnode2)上的 taosd 实例。
- RESTful:应用将 SQL 发送给位于物理节点 2(pnode2)上的 REST 连接器,再调用客户端驱动 API。
- JDBC-RESTful:Java 应用通过 JDBC-RESTful 的 API ,将 SQL 封装成一个 REST 请求,发送给物理节点 2 的 REST 连接器。
- JDBC 原生连接:Java 应用在物理节点 1(pnode1)上使用 TSDBDriver 直接调用客户端驱动(libtaos.so 或 taos.dll)的 API 将写入和查询请求发送到位于物理节点 2(pnode2)上的 taosd 实例。
- JDBC REST 连接:Java 应用通过 RestfulDriver 将 SQL 封装成一个 REST 请求,发送给物理节点 2 的 REST 服务器(taosAdapter),通过 REST 服务器请求 taosd 并返回结果。
:::info
TDengine 的 JDBC 驱动实现尽可能与关系型数据库驱动保持一致,但 TDengine 与关系对象型数据库的使用场景和技术特征存在差异,所以`taos-jdbcdriver` 与传统的 JDBC driver 也存在一定差异。在使用时需要注意以下几点:
...
...
@@ -65,8 +63,7 @@ TDengine 目前支持时间戳、数字、字符、布尔类型,与 Java 对
使用 Java Connector 连接数据库前,需要具备以下条件:
- 已安装 Java 1.8 或以上版本运行时环境和 Maven 3.6 或以上版本
<Preparition />
- 已安装客户端驱动(使用原生连接必须安装,使用 REST 连接无需安装),具体步骤请参考[安装客户端驱动](/reference/connector#安装客户端驱动)
<Tabs defaultValue="maven">
<TabItem value="maven" label="使用 Maven 安装">
...
...
@@ -184,9 +181,9 @@ String jdbcUrl = "jdbc:TAOS-RS://taosdemo.com:6041/test?user=root&password=taosd
Connection conn = DriverManager.getConnection(jdbcUrl);
```
以上示例,使用
JDBC-RESTful
的 driver,建立了到 hostname 为 taosdemo.com,端口为 6041,数据库名为 test 的连接。这个 URL 中指定用户名(user)为 root,密码(password)为 taosdata。
以上示例,使用
了 JDBC REST 连接
的 driver,建立了到 hostname 为 taosdemo.com,端口为 6041,数据库名为 test 的连接。这个 URL 中指定用户名(user)为 root,密码(password)为 taosdata。
使用 JDBC
-RESTful 接口
,不需要依赖本地函数库。与 JDBC 原生连接相比,仅需要:
使用 JDBC
REST 连接
,不需要依赖本地函数库。与 JDBC 原生连接相比,仅需要:
1. driverClass 指定为“com.taosdata.jdbc.rs.RestfulDriver”;
2. jdbcUrl 以“jdbc:TAOS-RS://”开头;
...
...
@@ -194,25 +191,27 @@ Connection conn = DriverManager.getConnection(jdbcUrl);
- user:登录 TDengine 用户名,默认值 'root'。
- password:用户登录密码,默认值 'taosdata'。
- batchfetch: true:在执行查询时批量拉取结果集;false:逐行拉取结果集。默认值为:false。逐行拉取结果集使用 HTTP 方式进行数据传输。从 taos-jdbcdriver-2.0.38 和 TDengine 2.4.0.12 版本开始,JDBC
-RESTful 的 driver 增加批量拉取数据功能。taos-jdbcdriver 与 TDengine 之间通过 WebSocket 连接进行数据传输。相较于 HTTP,WebSocket 可以使 JDBC-RESTful
支持大数据量查询,并提升查询性能。
- batchfetch: true:在执行查询时批量拉取结果集;false:逐行拉取结果集。默认值为:false。逐行拉取结果集使用 HTTP 方式进行数据传输。从 taos-jdbcdriver-2.0.38 和 TDengine 2.4.0.12 版本开始,JDBC
REST 连接增加批量拉取数据功能。taos-jdbcdriver 与 TDengine 之间通过 WebSocket 连接进行数据传输。相较于 HTTP,WebSocket 可以使 JDBC REST 连接
支持大数据量查询,并提升查询性能。
- batchErrorIgnore:true:在执行 Statement 的 executeBatch 时,如果中间有一条 SQL 执行失败,继续执行下面的 SQL 了。false:不再执行失败 SQL 后的任何语句。默认值为:false。
**注意**:部分配置项(比如:locale、timezone)在 REST 连接中不生效。
:::note
- 与原生连接方式不同,REST
ful 接口是无状态的。在使用 JDBC-RESTful
时,需要在 SQL 中指定表、超级表的数据库名称。例如:
- 与原生连接方式不同,REST
接口是无状态的。在使用 JDBC REST 连接
时,需要在 SQL 中指定表、超级表的数据库名称。例如:
```sql
INSERT INTO test.t1 USING test.weather (ts, temperature) TAGS('beijing') VALUES(now, 24.6);
```
- 从 taos-jdbcdriver-2.0.36 和 TDengine 2.2.0.0 版本开始,如果在 url 中指定了 dbname,那么,JDBC
-RESTful
会默认使用/rest/sql/dbname 作为 resful 请求的 url,在 SQL 中不需要指定 dbname。例如:url 为 jdbc:TAOS-RS://127.0.0.1:6041/test,那么,可以执行 sql:insert into t1 using weather(ts, temperatrue) tags('beijing') values(now, 24.6);
- 从 taos-jdbcdriver-2.0.36 和 TDengine 2.2.0.0 版本开始,如果在 url 中指定了 dbname,那么,JDBC
REST 连接
会默认使用/rest/sql/dbname 作为 resful 请求的 url,在 SQL 中不需要指定 dbname。例如:url 为 jdbc:TAOS-RS://127.0.0.1:6041/test,那么,可以执行 sql:insert into t1 using weather(ts, temperatrue) tags('beijing') values(now, 24.6);
:::
</TabItem>
<TabItem value="properties" label="指定 URL 和 Properties 获取连接">
</Tabs>
### 指定 URL 和 Properties 获取连接
除了通过指定的 URL 获取连接,还可以使用 Properties 指定建立连接时的参数。
...
...
@@ -259,8 +258,7 @@ properties 中的配置参数如下:
- TSDBDriver.PROPERTY_KEY_TIME_ZONE:仅在使用 JDBC 原生连接时生效。 客户端使用的时区,默认值为系统当前时区。
- 此外对 JDBC 原生连接,通过指定 URL 和 Properties 还可以指定其他参数,比如日志级别、SQL 长度等。详见 [config](/reference/config#为客户端指定配置文件) 中对客户端适用的参数。
</TabItem>
<TabItem value="priority" label="配置参数的优先级">
### 配置参数的优先级
通过前面三种方式获取连接,如果配置参数在 url、Properties、客户端配置文件中有重复,则参数的`优先级由高到低`分别如下:
...
...
@@ -272,9 +270,6 @@ properties 中的配置参数如下:
> 更多详细配置请参考[客户端配置](/reference/config/#仅客户端适用)
</TabItem>
</Tabs>
## 使用示例
### 创建数据库和表
...
...
@@ -357,7 +352,7 @@ JDBC 连接器可能报错的错误码包括 3 种:JDBC driver 本身的报错
**注意**:
- JDBC
-RESTful 实现并
不提供参数绑定这种使用方式
- JDBC
REST 连接暂时
不提供参数绑定这种使用方式
- 以下示例代码基于 taos-jdbcdriver-2.0.36
- binary 类型数据需要调用 setString 方法,nchar 类型数据需要调用 setNString 方法
- setString 和 setNString 都要求用户在 size 参数里声明表定义中对应列的列宽
...
...
@@ -627,7 +622,7 @@ public void setNString(int columnIndex, ArrayList<String> list, int size) throws
**注意**:
- JDBC
-RESTful 实现并
不提供无模式写入这种使用方式
- JDBC
REST 连接暂时
不提供无模式写入这种使用方式
- 以下示例代码基于 taos-jdbcdriver-2.0.36
示例代码:
...
...
@@ -805,11 +800,11 @@ Query OK, 1 row(s) in set (0.000141s)
## 重要更新记录
| taos-jdbcdriver 版本 | 主要变化 |
| :------------------: | :---------------------------: |
| 2.0.36 | 增加对 schemaless 写入支持 |
| 2.0.37 | 增加对 json tag 支持 |
| 2.0.38 |
增加对 RESTful 中
批量拉取功能 |
| taos-jdbcdriver 版本 |
主要变化 |
| :------------------: | :---------------------------
-
: |
| 2.0.36 |
增加对 schemaless 写入支持 |
| 2.0.37 |
增加对 json tag 支持 |
| 2.0.38 |
JDBC REST 连接增加
批量拉取功能 |
## 常见问题
...
...
docs-cn/14-reference/03-connector/tdengine-jdbc-connector.png
查看替换文件 @
5829932c
浏览文件 @
f261f4b5
185.1 KB
|
W:
|
H:
104.1 KB
|
W:
|
H:
2-up
Swipe
Onion skin
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录