TDengine Java连接快速入门指南
TDengine Java 连接器入门指南
TDengine 提供了标准的 JDBC 驱动程序 taos-jdbcdriver,允许 Java 应用程序通过 JDBC API 连接和操作数据库。
1. 安装驱动
- 手动添加 JAR: 从 TDengine 官网 下载
taos-jdbcdriver-{version}.jar,并添加到项目的类路径中。
Maven 依赖 (推荐): 在项目的 pom.xml 文件中添加依赖:
<dependency> <groupId>com.taosdata.jdbc</groupId> <artifactId>taos-jdbcdriver</artifactId> <version>3.2.4</version> <!-- 请检查最新版本 --> </dependency> 2. 建立数据库连接
使用以下格式的 JDBC URL 连接 TDengine:
String jdbcUrl = "jdbc:TAOS://{host}:{port}/{database}?user={user}&password={password}"; // 示例:jdbc:TAOS://127.0.0.1:6030/test?user=root&password=taosdata" 通过 DriverManager 获取连接:
import java.sql.Connection; import java.sql.DriverManager; public class TDengineDemo { public static void main(String[] args) { try { Class.forName("com.taosdata.jdbc.TSDBDriver"); Connection conn = DriverManager.getConnection(jdbcUrl); System.out.println("连接成功!"); // 后续操作... conn.close(); } catch (Exception e) { e.printStackTrace(); } } } 3. 执行 SQL 操作
通过 Statement 或 PreparedStatement 执行查询或写入:
try (Statement stmt = conn.createStatement()) { // 创建数据库(可选) stmt.execute("CREATE DATABASE IF NOT EXISTS test"); // 创建表 stmt.execute("CREATE TABLE IF NOT EXISTS test.meters (ts TIMESTAMP, current FLOAT, voltage INT)"); // 插入数据 stmt.executeUpdate("INSERT INTO test.meters VALUES (NOW, 10.2, 219)"); // 查询数据 ResultSet rs = stmt.executeQuery("SELECT * FROM test.meters"); while (rs.next()) { Timestamp ts = rs.getTimestamp("ts"); float current = rs.getFloat("current"); int voltage = rs.getInt("voltage"); System.out.println(ts + ", " + current + ", " + voltage); } rs.close(); } 4. 关键注意事项
批量写入:对于高频写入场景,建议使用 PreparedStatement 批量提交:
String sql = "INSERT INTO test.meters VALUES (?, ?, ?)"; try (PreparedStatement pstmt = conn.prepareStatement(sql)) { for (int i = 0; i < 1000; i++) { pstmt.setTimestamp(1, new Timestamp(System.currentTimeMillis())); pstmt.setFloat(2, 10.2f + i); pstmt.setInt(3, 220); pstmt.addBatch(); } pstmt.executeBatch(); } 时区处理:TDengine 默认使用 UTC 时间。若需本地时区,可在 JDBC URL 中指定:
jdbc:TAOS://...?timezone=UTC+8 5. 资源清理
始终在 finally 块或使用 try-with-resources 关闭资源:
try ( Connection conn = DriverManager.getConnection(jdbcUrl); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM test.meters") ) { // 操作结果集... } catch (SQLException e) { e.printStackTrace(); } 下一步学习建议
- 探索 TDengine Java 连接器文档
- 优化连接池(如 HikariCP)
- 学习 TDengine 的超级表(Super Table)设计模式
通过以上步骤,您已掌握 Java 连接 TDengine 的基础操作,可进一步开发时序数据应用。