
# IoTDB JDBC样例程序
#### 功能简介
通过JDBC连接方式，执行IoTDB SQL语句。
#### 代码样例
下面代码片段仅为演示，具体代码参见"com.huawei.bigdata.iotdb.JDBCExample"类。
其中，在**jdbc url**里设置待连接的IoTDBServer所在的节点IP、端口、用户名和密码。
![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
- 待连接的IoTDBServer所在的节点IP地址，可通过登录FusionInsight Manager界面，选择"集群 \> 服务 \> IoTDB \> 实例"查看。
- RPC端口可通过登录FusionInsight Manager，选择"集群 \> 服务 \> IoTDB \> 配置 \> 全部配置"，搜索参数"IOTDB_SERVER_RPC_PORT"获得。
- 普通模式下，初始安装后IoTDB有一个默认用户：root，密码请参见[用户账号一览表](https://support.huaweicloud.com/usermanual-mrs/admin_guide_000239.html)章节获取。该用户为管理员用户，固定拥有所有权限，无法被赋予，无法被撤销权限，也无法被删除。
- 需在本地环境变量中设置环境变量认证用户名和认证用户密码，建议密文存放，使用时解密，确保安全。其中：
  - *认证用户名*为访问IoTDB的用户名。
  
  - *认证用户密码*为访问IoTDB的用户密码。
   
 
```
private static final String IOTDB_SSL_ENABLE = "false";//该值可登录FusionInsight Manager，选择“集群 > 服务 > IoTDB > 配置”，在搜索框中搜索“SSL”，查看“SSL_ENABLE”参数值获取。
public static void main(String[] args) throws ClassNotFoundException, SQLException {
    Class.forName("org.apache.iotdb.jdbc.IoTDBDriver");
    // set iotdb_ssl_enable
    System.setProperty("iotdb_ssl_enable", IOTDB_SSL_ENABLE);
    if ("true".equals(IOTDB_SSL_ENABLE)) {  
      // set truststore.jks path  
      System.setProperty("iotdb_ssl_truststore", "truststore文件路径");
    }
    try (Connection connection =
            DriverManager.getConnection("jdbc:iotdb://127.0.0.1:22260/", "认证用户名", "认证用户密码");
        Statement statement = connection.createStatement()) {
      // set JDBC fetchSize
      statement.setFetchSize(10000);
      for (int i = 0; i <= 100; i++) {
        statement.addBatch(prepareInsertStatment(i));
      }
      statement.executeBatch();
      statement.clearBatch();
      ResultSet resultSet = statement.executeQuery("select ** from root where time <= 10");
      outputResult(resultSet);
      resultSet = statement.executeQuery("select count(**) from root");
      outputResult(resultSet);
      resultSet =
          statement.executeQuery(
              "select count(**) from root where time >= 1 and time <= 100 group by ([0, 100), 20ms, 20ms)");
      outputResult(resultSet);
    } catch (IoTDBSQLException e) {
      System.out.println(e.getMessage());
    }
  }
```
