使用 Java 连接器建立连接
增加依赖包
- Maven
- Spring
pom.xml
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>3.2.9</version>
</dependency>
在 “pom.xml ” 文件中添加 Spring Boot 和 TDengine Java connector 的依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.0</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.boot.version>2.5.12</spring.boot.version>
<taos.jdbc.version>3.2.7</taos.jdbc.version>
<druid.version>1.2.8</druid.version>
<mybatis.version>2.2.2</mybatis.version>
</properties>
<dependencies>
<!--spring-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!--connection pool-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>${taos.jdbc.version}</version>
</dependency>
配置
在您的终端里面执行下面的命令设置 JDBC URL 为环境变量。如果是 Spring 应用,您可以使用如下 Spring 的配置:
- Bash
- CMD
- Powershell
- Spring
export TDENGINE_JDBC_URL="<jdbcURL>"
set TDENGINE_JDBC_URL=<jdbcURL>
$env:TDENGINE_JDBC_URL='<jdbcURL>'
# spring server
server:
port: 8088
spring:
datasource:
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://example.com?useSSL=true&token=xxxx
# using connection pools
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
# mybatis
mybatis:
mapper-locations: classpath:mapper/*.xml
另外,您也可以在您的 IDE 的运行配置里设置环境变量
IMPORTANT
替换 <jdbcURL> 为 真实的 JDBC URL,比如 jdbc:TAOS-RS://example.com?useSSL=true&token=xxxx
。
获取真实的 JDBC URL 的值,请登录TDengine Cloud 后点击左边的”编程“菜单,然后选择”Java“。
建立连接
- Java
- Spring
下面的代码是先从环境变量里面创建 JDBC URL ,然后创建 Connection
这个 JDBC 连接标准对象。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnectCloudExample {
public static void main(String[] args) throws SQLException {
String jdbcUrl = System.getenv("TDENGINE_JDBC_URL");
System.out.println(jdbcUrl);
try(Connection conn = DriverManager.getConnection(jdbcUrl)) {
try(Statement stmt = conn.createStatement()) {
stmt.executeQuery("select server_version()");
}
}
}
}
- 定义一个名为 MeterMapper 的接口,它使用 MyBatis 框架在 TDengine 数据库的超级表和 Java 对象之间进行映射。
@Mapper
public interface MeterMapper {
@Select("select * from meters limit 10")
List<Meter> find();
int create(@Param("meter")Meter meter, @Param("tableName")String tableName);
int save(@Param("meter")Meter meter, @Param("tableName")String tableName);
Meter lastRow(@Param("tableName")String tableName);
}
- 在“src/main/resources/mapper”中创建 “MeterMapper.xml”,文件中添加以下 SQL 映射
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.taos.example.dao.MeterMapper">
<resultMap id="Meter" type="com.taos.example.dao.Meter">
<result column="ts" property="ts"/>
<result column="current" property="current"/>
<result column="voltage" property="voltage"/>
<result column="phase" property="phase"/>
<result column="groupId" property="groupid"/>
<result column="location" property="location"/>
</resultMap>
<insert id="create">
CREATE TABLE IF NOT EXISTS #{tableName, jdbcType=VARCHAR} USING meters TAGS
(#{meter.groupId, jdbcType=INTEGER}, #{meter.location, jdbcType=VARCHAR})
</insert>
<insert id="save">
INSERT INTO #{tableName} VALUES (#{meter.ts}, #{meter.current}, #{meter.voltage}, #{meter.phase}) ;
</insert>
<select id="lastRow" resultMap="Meter">
SELECT last_row(*) FROM meters;
</select>
</mapper>
- 使用 Spring 进行更多查询和插入 TDengine Cloud 实例的示例代码,请参考 Spring Example
客户端连接建立连接以后,想了解更多写入数据和查询数据的内容,请参考 写入 和 查询。
想知道更多通过 REST 接口写入数据的详情,请参考REST 接口。