未验证 提交 29347590 编写于 作者: B Bo Ding 提交者: GitHub

add connect examples to docs-examples (#10976)

* add sample code

* add sample code

* add example

* add connect examples
上级 61a08d2e
...@@ -9,12 +9,16 @@ import Tabs from "@theme/Tabs"; ...@@ -9,12 +9,16 @@ import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem"; import TabItem from "@theme/TabItem";
import ConnRest from "./_connect_restful.mdx"; import ConnRest from "./_connect_restful.mdx";
import ConnJava from "./_connect_java.mdx"; import ConnJava from "./_connect_java.mdx";
import ConnPython from "./_connect_python.mdx";
import ConnGo from "./_connect_go.mdx"; import ConnGo from "./_connect_go.mdx";
import ConnC from "./_connect_c.mdx";
import ConnRust from "./_connect_rust.mdx"; import ConnRust from "./_connect_rust.mdx";
import ConnNode from "./_connect_node.mdx"; import ConnNode from "./_connect_node.mdx";
import ConnCS from "./_connect_cs.mdx"; import ConnJavaNative from "./_connect_java_native.mdx";
import ConnPythonNative from "./_connect_python_native.mdx";
import ConnGoNative from "./_connect_go_native.mdx";
import ConnRustNative from "./_connect_rust_native.mdx";
import ConnNodeNative from "./_connect_node_native.mdx";
import ConnCSNative from "./_connect_cs_native.mdx";
import ConnC from "./_connect_c.mdx";
## 连接器介绍 ## 连接器介绍
...@@ -36,7 +40,7 @@ TDengine 提供了 RESTful 接口,应用程序无需安装任何依赖,只 ...@@ -36,7 +40,7 @@ TDengine 提供了 RESTful 接口,应用程序无需安装任何依赖,只
如果你安装的是 TDengine 2.4 之后的版本,使用 RESTful 方式连接时还需启动 taosAdaper。 如果你安装的是 TDengine 2.4 之后的版本,使用 RESTful 方式连接时还需启动 taosAdaper。
<Tabs> <Tabs groupId="lang">
<TabItem label="curl" value=""> <TabItem label="curl" value="">
<ConnRest /> <ConnRest />
</TabItem> </TabItem>
...@@ -49,19 +53,39 @@ TDengine 提供了 RESTful 接口,应用程序无需安装任何依赖,只 ...@@ -49,19 +53,39 @@ TDengine 提供了 RESTful 接口,应用程序无需安装任何依赖,只
<TabItem label="Rust" value="rust"> <TabItem label="Rust" value="rust">
<ConnRust /> <ConnRust />
</TabItem> </TabItem>
<TabItem label="NodeJS" value="node"></TabItem> <TabItem label="NodeJS" value="node">
<ConnNode />
</TabItem>
</Tabs> </Tabs>
### 本地驱动 ### 本地驱动
在没有安装 TDengine 服务端软件的系统上使用本地驱动连接 TDengine, 需要提前[安装客户端驱动程序](/reference/connector/#安装客户端驱动)。 在没有安装 TDengine 服务端软件的系统上使用本地驱动连接 TDengine, 需要提前[安装客户端驱动程序](/reference/connector/#安装客户端驱动)。
:::note
需要单独安装客户端时,为避免客户端驱动和服务端不兼容,请尽量使用一致的版本。
:::
<Tabs defaultValue="java"> <Tabs groupId="lang" defaultValue="java">
<TabItem label="Java" value="java"></TabItem> <TabItem label="Java" value="java">
<TabItem label="Python" value="Python"></TabItem> <ConnJavaNative />
<TabItem label="Go" value="go"></TabItem> </TabItem>
<TabItem label="C" value="c"></TabItem> <TabItem label="Python" value="Python">
<TabItem label="Rust" value="rust"></TabItem> <ConnPythonNative />
<TabItem label="Node.js" value="nodejs"></TabItem> </TabItem>
<TabItem label="C#" value="csharp"></TabItem> <TabItem label="Go" value="go">
<ConnGoNative />
</TabItem>
<TabItem label="Rust" value="rust">
<ConnRustNative />
</TabItem>
<TabItem label="NodeJS" value="nodejs">
<ConnNodeNative />
</TabItem>
<TabItem label="C#" value="csharp">
<ConnCSNative />
</TabItem>
<TabItem label="C" value="c">
<ConnC />
</TabItem>
</Tabs> </Tabs>
```c
:::warning {{#include docs-examples/c/connect_example.c}}
```
在没有安装 TDengine 服务端软件的系统中使用连接器(除 RESTful 外)访问 TDengine 数据库,需要先[安装相应版本的客户端驱动](/connect/#安装客户端驱动)(Linux 系统中文件名为 libtaos.so,Windows 系统中为 taos.dll),否则会产生无法找到相应库文件的错误。
:::
\ No newline at end of file
首先添加 [TDengine.Connector](https://www.nuget.org/packages/TDengine.Connector/) 的引用:
```bash
dotnet add package TDengine.Connector
```
```csharp
{{#include docs-examples/csharp/ConnectExample.cs}}
```
```go-mod title=go.mod
module goexample
go 1.17
require github.com/taosdata/driver-go/v2 develop
```
```go ```go
{{#include docs-examples/go/connect/restexample/main.go}} {{#include docs-examples/go/connect/restexample/main.go}}
``` ```
[查看完整程序](https://github.com/taosdata/TDengine/blob/develop/docs-examples/go/connect/restexample/main.go)
:::note
driver-go 使用 cgo 封装了 taosc 的 API。cgo 需要使用 gcc 编译 C 的源码。因此需要确保你的系统上有 gcc。
:::
```go-mod title=go.mod
module goexample
go 1.17
require github.com/taosdata/driver-go/v2 develop
```
```go
{{#include docs-examples/go/connect/cgoexample/main.go}}
```
```xml title=pom.xml
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.37</version>
</dependency>
```
```java ```java
{{#include docs-examples/java/src/main/java/com/taos/example/RESTConnectExample.java}} {{#include docs-examples/java/src/main/java/com/taos/example/RESTConnectExample.java}}
``` ```
[查看完整程序](https://github.com/taosdata/TDengine/blob/develop/docs-examples/java/src/main/java/com/taos/example/RESTConnectExample.java)
\ No newline at end of file
```xml title=pom.xml
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.37</version>
</dependency>
```
```java
{{#include docs-examples/java/src/main/java/com/taos/example/JNIConnectExample.java}}
```
首先需要安装 node.js 的连接器 `td2.0-connector`:
```bash
npm install td2.0-connector
```
```js
{{#include docs-examples/node/nativeexample/connect.js}}
```
推荐使用 `python >= 3.4`。首先需要安装 python 连接器 `taospy`。执行以下命令即可:
```
pip3 install taospy
```
```python
{{#include docs-examples/python/connect_exmaple.py}}
```
下面用 curl 工具来演示访问 RESTful 接口。在命令行执行下面的命令: 下面用 curl 工具来演示访问 RESTful 接口。在命令行执行下面的命令:
```sh ```bash
curl http://localhost:6041/rest/sql -u root:taosdata -d "select server_version()" curl http://localhost:6041/rest/sql -u root:taosdata -d "select server_version()"
``` ```
...@@ -18,3 +18,5 @@ curl http://localhost:6041/rest/sql -u root:taosdata -d "select server_version() ...@@ -18,3 +18,5 @@ curl http://localhost:6041/rest/sql -u root:taosdata -d "select server_version()
"rows": 1 "rows": 1
} }
``` ```
了解更多:[RESTful API](/reference/restful-api)。
```toml title=Cargo.toml
[dependencies]
libtaos = { version = "*", features = ["rest"] }
```
```rust ```rust
{{#include docs-examples/rust/restexample/examples/connect.rs}} {{#include docs-examples/rust/restexample/examples/connect.rs}}
``` ```
[查看完整程序](https://github.com/taosdata/TDengine/blob/develop/docs-examples/rust/restexample/examples/connect.rs)
```toml title=Cargo.toml
[dependencies]
libtaos = { version = "0.4.2"}
```
```rust
{{#include docs-examples/rust/nativeexample/examples/connect.rs}}
```
...@@ -22,9 +22,12 @@ sidebar_label: C# ...@@ -22,9 +22,12 @@ sidebar_label: C#
示例程序源码位于 示例程序源码位于
- {client_install_directory}/examples/C# - {client_install_directory}/examples/C#
- [C# example source code on GitHub](https://github.com/taosdata/TDengine/tree/develop/examples/C%2523) - [C# example source code on GitHub](https://github.com/taosdata/TDengine/tree/develop/examples/C%23)
**注意:** TDengineTest.cs C# 示例源程序,包含了数据库连接参数,以及如何执行数据插入、查询等操作。 :::note
TDengineTest.cs C# 示例源程序,包含了数据库连接参数,以及如何执行数据插入、查询等操作。
:::
## 安装验证 ## 安装验证
......
// compile with
// gcc connect_example.c -o connect_example -I /usr/local/taos/include -L /usr/local/taos/driver -ltaos
#include <stdio.h>
#include "taos.h"
#include "taoserror.h"
int main() {
// if don't want to connect to a default db, set it to NULL.
const char *db = NULL;
TAOS *taos = taos_connect("localhost", "root", "taosdata", db, 6030);
printf("Connected\n");
taos_close(taos);
}
bin
obj
.vs
*.sln
\ No newline at end of file
namespace TDExamples
{
internal class ConnectExample
{
static void Main(String[] args)
{
string host = "localhost";
short port = 6030;
string username = "root";
string password = "taosdata";
string dbname = "";
var conn = TDengine.Connect(host, username, password, dbname, port);
if (conn == IntPtr.Zero)
{
Console.WriteLine("Connect to TDengine failed");
}
else
{
Console.WriteLine("Connect to TDengine success");
}
TDengine.Cleanup();
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="TDengine.Connector" Version="1.0.4" />
</ItemGroup>
</Project>
package main
import (
"database/sql"
"fmt"
_ "github.com/taosdata/driver-go/v2/taosSql"
)
func main() {
var taosDSN = "root:taosdata@tcp(localhost:6030)/"
taos, err := sql.Open("taosSql", taosDSN)
if err != nil {
fmt.Println("failed to connect TDengine, err:", err)
return
}
fmt.Println("Connected")
defer taos.Close()
}
// use
// var taosDSN = "root:taosdata@tcp(localhost:6030)/dbName"
// if you want to connect to a default database.
...@@ -8,7 +8,7 @@ import ( ...@@ -8,7 +8,7 @@ import (
) )
func main() { func main() {
var taosDSN = "root:taosdata@http(localhost:6041)/test" var taosDSN = "root:taosdata@http(localhost:6041)"
taos, err := sql.Open("taosRestful", taosDSN) taos, err := sql.Open("taosRestful", taosDSN)
if err != nil { if err != nil {
fmt.Println("failed to connect TDengine, err:", err) fmt.Println("failed to connect TDengine, err:", err)
...@@ -17,3 +17,7 @@ func main() { ...@@ -17,3 +17,7 @@ func main() {
fmt.Println("Connected") fmt.Println("Connected")
defer taos.Close() defer taos.Close()
} }
// use
// var taosDSN = "root:taosdata@http(localhost:6041)/dbName"
// if you want to connect to a default database.
package com.taos.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import com.taosdata.jdbc.TSDBDriver;
public class JNIConnectExample {
public static void main(String[] args) throws SQLException {
String jdbcUrl = "jdbc:TAOS://localhost:6030?user=root&password=taosdata";
Properties connProps = new Properties();
connProps.setProperty(TSDBDriver.PROPERTY_KEY_CHARSET, "UTF-8");
connProps.setProperty(TSDBDriver.PROPERTY_KEY_LOCALE, "en_US.UTF-8");
connProps.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8");
Connection conn = DriverManager.getConnection(jdbcUrl, connProps);
System.out.println("Connected");
conn.close();
}
}
// use
// String jdbcUrl = "jdbc:TAOS://localhost:6030/dbName?user=root&password=taosdata";
// if you want to connect to a default database.
\ No newline at end of file
...@@ -4,7 +4,7 @@ import java.sql.ResultSet; ...@@ -4,7 +4,7 @@ import java.sql.ResultSet;
import java.sql.ResultSetMetaData; import java.sql.ResultSetMetaData;
import java.sql.SQLException; import java.sql.SQLException;
public class RESTQueryExample { public class QueryExample {
static void printResult(ResultSet resultSet) throws SQLException { static void printResult(ResultSet resultSet) throws SQLException {
ResultSetMetaData metaData = resultSet.getMetaData(); ResultSetMetaData metaData = resultSet.getMetaData();
while (resultSet.next()) { while (resultSet.next()) {
......
...@@ -8,8 +8,6 @@ import java.sql.SQLException; ...@@ -8,8 +8,6 @@ import java.sql.SQLException;
import java.util.Properties; import java.util.Properties;
public class RESTConnectExample { public class RESTConnectExample {
public static void main(String[] args) throws SQLException { public static void main(String[] args) throws SQLException {
String jdbcUrl = "jdbc:TAOS-RS://localhost:6041?user=root&password=taosdata"; String jdbcUrl = "jdbc:TAOS-RS://localhost:6041?user=root&password=taosdata";
Properties connProps = new Properties(); Properties connProps = new Properties();
...@@ -20,4 +18,8 @@ public class RESTConnectExample { ...@@ -20,4 +18,8 @@ public class RESTConnectExample {
System.out.println("Connected"); System.out.println("Connected");
conn.close(); conn.close();
} }
} }
\ No newline at end of file
// use
// String jdbcUrl = "jdbc:TAOS-RS://localhost:6041/dbName?user=root&password=taosdata";
// if you want to connect to a default database.
\ No newline at end of file
node_modules
package-lock.json
yarn-lock.json
\ No newline at end of file
const taos = require("td2.0-connector");
var conn = taos.connect({
host: "localhost",
port: 6030,
user: "root",
password: "taosdata",
});
conn.close();
{
"name": "examples",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"td2.0-connector": "^2.0.10"
}
}
import taos
def test_connection():
# all parameters are optional.
# if database is specified,
# then it must exist.
# we use database log here, because it always exists.
conn = taos.connect(host="localhost",
port=6030,
user="root",
password="taosdata",
database="log")
print('client info:', conn.client_info)
print('server info:', conn.server_info)
conn.close()
if __name__ == "__main__":
test_connection()
...@@ -253,9 +253,9 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" ...@@ -253,9 +253,9 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
[[package]] [[package]]
name = "hyper" name = "hyper"
version = "0.14.17" version = "0.14.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd" checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-channel", "futures-channel",
...@@ -346,9 +346,9 @@ checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f" ...@@ -346,9 +346,9 @@ checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f"
[[package]] [[package]]
name = "libtaos" name = "libtaos"
version = "0.4.0" version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae73a24bd820dc6e587fc8390fae3e0ecf20e33d8114e8c1c729f9959ed68c7e" checksum = "1d298164350053f81f958b8590a4d9bccc4d7f66a6aad3ffc0e937de9432bf88"
dependencies = [ dependencies = [
"bstr", "bstr",
"chrono", "chrono",
...@@ -368,9 +368,9 @@ dependencies = [ ...@@ -368,9 +368,9 @@ dependencies = [
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.14" version = "0.4.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
] ]
...@@ -416,6 +416,13 @@ dependencies = [ ...@@ -416,6 +416,13 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "nativeexample"
version = "0.1.0"
dependencies = [
"libtaos",
]
[[package]] [[package]]
name = "ntapi" name = "ntapi"
version = "0.3.7" version = "0.3.7"
......
[workspace] [workspace]
members = ["restexample"] members = ["restexample", "nativeexample"]
[package]
name = "nativeexample"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
libtaos = { version = "0.4.2" }
use libtaos::*;
fn taos_connect() -> Result<Taos, Error> {
TaosCfgBuilder::default()
.ip("localhost")
.user("root")
.pass("taosdata")
// .db("log") // remove comment if you want to connect to database log by default.
.port(6030u16)
.build()
.expect("TaosCfg builder error")
.connect()
}
fn main() {
#[allow(unused_variables)]
let taos = taos_connect().unwrap();
println!("Connected")
}
fn main() {
println!("Hello, world!");
}
...@@ -2,13 +2,13 @@ use libtaos::*; ...@@ -2,13 +2,13 @@ use libtaos::*;
fn taos_connect() -> Result<Taos, Error> { fn taos_connect() -> Result<Taos, Error> {
TaosCfgBuilder::default() TaosCfgBuilder::default()
.ip("127.0.0.1") .ip("localhost")
.user("root") .user("root")
.pass("taosdata") .pass("taosdata")
.db("log") // .db("log") // remove comment if you want to connect to database log by default.
.port(6030u16) .port(6030u16)
.build() .build()
.expect("ToasCfg builder error") .expect("TaosCfg builder error")
.connect() .connect()
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册