未验证 提交 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";
import TabItem from "@theme/TabItem";
import ConnRest from "./_connect_restful.mdx";
import ConnJava from "./_connect_java.mdx";
import ConnPython from "./_connect_python.mdx";
import ConnGo from "./_connect_go.mdx";
import ConnC from "./_connect_c.mdx";
import ConnRust from "./_connect_rust.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 接口,应用程序无需安装任何依赖,只
如果你安装的是 TDengine 2.4 之后的版本,使用 RESTful 方式连接时还需启动 taosAdaper。
<Tabs>
<Tabs groupId="lang">
<TabItem label="curl" value="">
<ConnRest />
</TabItem>
......@@ -49,19 +53,39 @@ TDengine 提供了 RESTful 接口,应用程序无需安装任何依赖,只
<TabItem label="Rust" value="rust">
<ConnRust />
</TabItem>
<TabItem label="NodeJS" value="node"></TabItem>
<TabItem label="NodeJS" value="node">
<ConnNode />
</TabItem>
</Tabs>
### 本地驱动
在没有安装 TDengine 服务端软件的系统上使用本地驱动连接 TDengine, 需要提前[安装客户端驱动程序](/reference/connector/#安装客户端驱动)。
:::note
需要单独安装客户端时,为避免客户端驱动和服务端不兼容,请尽量使用一致的版本。
:::
<Tabs defaultValue="java">
<TabItem label="Java" value="java"></TabItem>
<TabItem label="Python" value="Python"></TabItem>
<TabItem label="Go" value="go"></TabItem>
<TabItem label="C" value="c"></TabItem>
<TabItem label="Rust" value="rust"></TabItem>
<TabItem label="Node.js" value="nodejs"></TabItem>
<TabItem label="C#" value="csharp"></TabItem>
<Tabs groupId="lang" defaultValue="java">
<TabItem label="Java" value="java">
<ConnJavaNative />
</TabItem>
<TabItem label="Python" value="Python">
<ConnPythonNative />
</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>
:::warning
在没有安装 TDengine 服务端软件的系统中使用连接器(除 RESTful 外)访问 TDengine 数据库,需要先[安装相应版本的客户端驱动](/connect/#安装客户端驱动)(Linux 系统中文件名为 libtaos.so,Windows 系统中为 taos.dll),否则会产生无法找到相应库文件的错误。
:::
\ No newline at end of file
```c
{{#include docs-examples/c/connect_example.c}}
```
首先添加 [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
{{#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
{{#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 接口。在命令行执行下面的命令:
```sh
```bash
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
}
```
了解更多:[RESTful API](/reference/restful-api)。
```toml title=Cargo.toml
[dependencies]
libtaos = { version = "*", features = ["rest"] }
```
```rust
{{#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#
示例程序源码位于
- {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 (
)
func main() {
var taosDSN = "root:taosdata@http(localhost:6041)/test"
var taosDSN = "root:taosdata@http(localhost:6041)"
taos, err := sql.Open("taosRestful", taosDSN)
if err != nil {
fmt.Println("failed to connect TDengine, err:", err)
......@@ -17,3 +17,7 @@ func main() {
fmt.Println("Connected")
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;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class RESTQueryExample {
public class QueryExample {
static void printResult(ResultSet resultSet) throws SQLException {
ResultSetMetaData metaData = resultSet.getMetaData();
while (resultSet.next()) {
......
......@@ -8,8 +8,6 @@ import java.sql.SQLException;
import java.util.Properties;
public class RESTConnectExample {
public static void main(String[] args) throws SQLException {
String jdbcUrl = "jdbc:TAOS-RS://localhost:6041?user=root&password=taosdata";
Properties connProps = new Properties();
......@@ -20,4 +18,8 @@ public class RESTConnectExample {
System.out.println("Connected");
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"
[[package]]
name = "hyper"
version = "0.14.17"
version = "0.14.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd"
checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2"
dependencies = [
"bytes",
"futures-channel",
......@@ -346,9 +346,9 @@ checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f"
[[package]]
name = "libtaos"
version = "0.4.0"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae73a24bd820dc6e587fc8390fae3e0ecf20e33d8114e8c1c729f9959ed68c7e"
checksum = "1d298164350053f81f958b8590a4d9bccc4d7f66a6aad3ffc0e937de9432bf88"
dependencies = [
"bstr",
"chrono",
......@@ -368,9 +368,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.14"
version = "0.4.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
dependencies = [
"cfg-if",
]
......@@ -416,6 +416,13 @@ dependencies = [
"winapi",
]
[[package]]
name = "nativeexample"
version = "0.1.0"
dependencies = [
"libtaos",
]
[[package]]
name = "ntapi"
version = "0.3.7"
......
[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::*;
fn taos_connect() -> Result<Taos, Error> {
TaosCfgBuilder::default()
.ip("127.0.0.1")
.ip("localhost")
.user("root")
.pass("taosdata")
.db("log")
// .db("log") // remove comment if you want to connect to database log by default.
.port(6030u16)
.build()
.expect("ToasCfg builder error")
.expect("TaosCfg builder error")
.connect()
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册