本文介绍如何从管理控制台上获取连接串,并基于该连接串通过JDBC Driver构建一个简单的应用程序。

获取连接串

  1. 登录Lindorm控制台
  2. 实例列表单击目标实例ID,进入实例详情页面。
  3. 单击数据库连接 > 时序引擎进入时序引擎页面。
  4. 时序引擎页面查看私网地址或公网地址。
    说明 默认情况下,公网地址未开启,如果需要使用公网地址,请单击开通外网地址申请公网地址。
    TSQL CLient连接-1

构建JDBC连接字符串

连接字符串的示例如下:

jdbc:lindorm:tsdb:url=http://ld-xxxx-proxy-tsdb.lindorm.rds.aliyuncs.com:8242;
说明 JDBC Driver连接字符串中所支持的连接参数请参见 URL语法与连接参数

访问示例

基于上文构建的连接字符串可以编写下述样例代码对Lindorm时序引擎进行建表、写数据以及简单查询的操作。关于如何在应用程序中安装并使用Lindorm JDBC,可以参见 在项目中集成并应用Lindorm JDBC Driver
        Connection conn = null;
        try {
            String url = "jdbc:lindorm:tsdb:url=http://ld-XXXXXXXXXXXXX-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242";
            conn = DriverManager.getConnection(url);
            try (Statement stmt = conn.createStatement()) {
                // 创建时序数据表
                stmt.execute("create table sensor (device_id VARCHAR TAG,region VARCHAR TAG,time BIGINT,temperature DOUBLE,humidity DOUBLE)");
                // 写入数据
                stmt.execute("insert into sensor (device_id, region, time, temperature, humidity) values('F07A1260','north-cn',1619076780000,12.1,45),('F07A1260','north-cn',1619076790000,13.2,47),('F07A1260','north-cn',1619076800000,10.6,46),('F07A1261','south-cn',1619076780000,18.1,44),('F07A1261','south-cn',1619076790000,19.7,44)");
                // 查询数据
                ResultSet rs = stmt.executeQuery("select region,time,temperature,humidity from sensor where time >= 1619076780000 and time <= 1619076800000");
                // 从查询结果集中获取数据
                while (rs.next()) {
                    String region = rs.getString("region");
                    Long time = rs.getLong("time");
                    Double temperature = rs.getDouble("temperature");
                    Double humidity = rs.getDouble("humidity");
                    System.out.println("region=" + region + ",time=" + time + ",temperature" + temperature + ",humidity" + humidity);
                }
            } catch (RuntimeException e) {
                // 异常处理需要结合实际业务逻辑编写
                e.printStackTrace();
            } catch (SQLException e) {
                // 异常处理需要结合实际业务逻辑编写
                e.printStackTrace();
            }
        } catch (RuntimeException e) {
            // 异常处理需要结合实际业务逻辑编写
            System.out.println("connection failed.");
            e.printStackTrace();
        } catch (SQLException e) {
            // 异常处理需要结合实际业务逻辑编写
            e.printStackTrace();
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
说明
  1. 关于 Lindorm JDBC Driver 支持的API范围可参见 JDBC API Reference
  2. 关于Lindorm时序引擎支持的SQL语法可参见 时序引擎应用开发简介