blob: 9cf801aa2df4251b4461db230e37dac6f5df3e81 [file]
import{_ as n,c as l,b as a,o as e}from"./app-pmkzp6TS.js";const t={};function o(i,s){return e(),l("div",null,[...s[0]||(s[0]=[a(`<h1 id="java原生接口" tabindex="-1"><a class="header-anchor" href="#java原生接口"><span>Java原生接口</span></a></h1><h2 id="_1-功能介绍" tabindex="-1"><a class="header-anchor" href="#_1-功能介绍"><span>1. 功能介绍</span></a></h2><p>IoTDB具备Java原生客户端驱动和对应的连接池,提供对象化接口,可以直接组装时序对象进行写入,无需拼装 SQL。推荐使用连接池,多线程并行操作数据库。</p><h2 id="_2-使用方式" tabindex="-1"><a class="header-anchor" href="#_2-使用方式"><span>2. 使用方式</span></a></h2><p><strong>环境要求:</strong></p><ul><li>JDK &gt;= 1.8</li><li>Maven &gt;= 3.6</li></ul><p><strong>在maven中添加依赖:</strong></p><div class="language-xml line-numbers-mode" data-highlighter="shiki" data-ext="xml" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-xml"><span class="line"><span style="color:#ABB2BF;">&lt;</span><span style="color:#E06C75;">dependencies</span><span style="color:#ABB2BF;">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;"> &lt;</span><span style="color:#E06C75;">dependency</span><span style="color:#ABB2BF;">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;"> &lt;</span><span style="color:#E06C75;">groupId</span><span style="color:#ABB2BF;">&gt;org.apache.iotdb&lt;/</span><span style="color:#E06C75;">groupId</span><span style="color:#ABB2BF;">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;"> &lt;</span><span style="color:#E06C75;">artifactId</span><span style="color:#ABB2BF;">&gt;iotdb-session&lt;/</span><span style="color:#E06C75;">artifactId</span><span style="color:#ABB2BF;">&gt;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> &lt;!-- 版本号与数据库版本号相同 --&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;"> &lt;</span><span style="color:#E06C75;">version</span><span style="color:#ABB2BF;">&gt;\${project.version}&lt;/</span><span style="color:#E06C75;">version</span><span style="color:#ABB2BF;">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;"> &lt;/</span><span style="color:#E06C75;">dependency</span><span style="color:#ABB2BF;">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;">&lt;/</span><span style="color:#E06C75;">dependencies</span><span style="color:#ABB2BF;">&gt;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul><li>可从<a href="https://repo1.maven.org/maven2/org/apache/iotdb/iotdb-session/" target="_blank" rel="noopener noreferrer">此处</a>查看<code>iotdb-session</code>最新版本</li><li>注意:请勿使用高版本客户端连接低版本服务。</li></ul><h2 id="_3-读写操作" tabindex="-1"><a class="header-anchor" href="#_3-读写操作"><span>3. 读写操作</span></a></h2><h3 id="_3-1-itablesession接口" tabindex="-1"><a class="header-anchor" href="#_3-1-itablesession接口"><span>3.1 ITableSession接口</span></a></h3><h4 id="_3-1-1-功能描述" tabindex="-1"><a class="header-anchor" href="#_3-1-1-功能描述"><span>3.1.1 功能描述</span></a></h4><p>ITableSession接口定义了与IoTDB交互的基本操作,可以执行数据插入、查询操作以及关闭会话等,非线程安全。</p><h4 id="_3-1-2-方法列表" tabindex="-1"><a class="header-anchor" href="#_3-1-2-方法列表"><span>3.1.2 方法列表</span></a></h4><p>以下是ITableSession接口中定义的方法及其详细说明:</p><table><thead><tr><th><strong>方法名</strong></th><th><strong>描述</strong></th><th><strong>参数</strong></th><th><strong>返回值</strong></th><th><strong>返回异常</strong></th></tr></thead><tbody><tr><td>insert(Tablet tablet)</td><td>将一个包含时间序列数据的Tablet 对象插入到数据库中</td><td>tablet: 要插入的Tablet对象</td><td>无</td><td>StatementExecutionExceptionIoTDBConnectionException</td></tr><tr><td>executeNonQueryStatement(String sql)</td><td>执行非查询SQL语句,如DDL(数据定义语言)或DML(数据操作语言)命令</td><td>sql: 要执行的SQL语句。</td><td>无</td><td>StatementExecutionExceptionIoTDBConnectionException</td></tr><tr><td>executeQueryStatement(String sql)</td><td>执行查询SQL语句,并返回包含查询结果的SessionDataSet对象</td><td>sql: 要执行的查询SQL语句。</td><td>SessionDataSet</td><td>StatementExecutionExceptionIoTDBConnectionException</td></tr><tr><td>executeQueryStatement(String sql, long timeoutInMs)</td><td>执行查询SQL语句,并设置查询超时时间(以毫秒为单位)</td><td>sql: 要执行的查询SQL语句。timeoutInMs: 查询超时时间(毫秒)</td><td>SessionDataSet</td><td>StatementExecutionException</td></tr><tr><td>close()</td><td>关闭会话,释放所持有的资源</td><td>无</td><td>无</td><td>IoTDBConnectionException</td></tr></tbody></table><h4 id="_3-1-3-接口展示" tabindex="-1"><a class="header-anchor" href="#_3-1-3-接口展示"><span>3.1.3 接口展示</span></a></h4><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="color:#7F848E;font-style:italic;">/**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * This interface defines a session for interacting with IoTDB tables.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * It supports operations such as data insertion, executing queries, and closing the session.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Implementations of this interface are expected to manage connections and ensure</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * proper resource cleanup.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * &lt;p&gt;Each method may throw exceptions to indicate issues such as connection errors or</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * execution failures.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * &lt;p&gt;Since this interface extends {@link AutoCloseable}, it is recommended to use</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * try-with-resources to ensure the session is properly closed.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;">public</span><span style="color:#C678DD;"> interface</span><span style="color:#E5C07B;"> ITableSession</span><span style="color:#C678DD;"> extends</span><span style="color:#E5C07B;"> AutoCloseable</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Inserts a {@link Tablet} into the database.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> tablet</span><span style="color:#7F848E;font-style:italic;"> the tablet containing time-series data to be inserted.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> StatementExecutionException</span><span style="color:#7F848E;font-style:italic;"> if an error occurs while executing the statement.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> IoTDBConnectionException</span><span style="color:#7F848E;font-style:italic;"> if there is an issue with the IoTDB connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> void</span><span style="color:#61AFEF;"> insert</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">Tablet</span><span style="color:#E06C75;font-style:italic;"> tablet</span><span style="color:#ABB2BF;">)</span><span style="color:#C678DD;"> throws</span><span style="color:#E5C07B;"> StatementExecutionException</span><span style="color:#ABB2BF;">,</span><span style="color:#E5C07B;"> IoTDBConnectionException</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Executes a non-query SQL statement, such as a DDL or DML command.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> sql</span><span style="color:#7F848E;font-style:italic;"> the SQL statement to execute.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> IoTDBConnectionException</span><span style="color:#7F848E;font-style:italic;"> if there is an issue with the IoTDB connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> StatementExecutionException</span><span style="color:#7F848E;font-style:italic;"> if an error occurs while executing the statement.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> void</span><span style="color:#61AFEF;"> executeNonQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> sql</span><span style="color:#ABB2BF;">)</span><span style="color:#C678DD;"> throws</span><span style="color:#E5C07B;"> IoTDBConnectionException</span><span style="color:#ABB2BF;">,</span><span style="color:#E5C07B;"> StatementExecutionException</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Executes a query SQL statement and returns the result set.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> sql</span><span style="color:#7F848E;font-style:italic;"> the SQL query statement to execute.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> a {@link SessionDataSet} containing the query results.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> StatementExecutionException</span><span style="color:#7F848E;font-style:italic;"> if an error occurs while executing the statement.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> IoTDBConnectionException</span><span style="color:#7F848E;font-style:italic;"> if there is an issue with the IoTDB connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#E5C07B;"> SessionDataSet</span><span style="color:#61AFEF;"> executeQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> sql</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#C678DD;"> throws</span><span style="color:#E5C07B;"> StatementExecutionException</span><span style="color:#ABB2BF;">,</span><span style="color:#E5C07B;"> IoTDBConnectionException</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Executes a query SQL statement with a specified timeout and returns the result set.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> sql</span><span style="color:#7F848E;font-style:italic;"> the SQL query statement to execute.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> timeoutInMs</span><span style="color:#7F848E;font-style:italic;"> the timeout duration in milliseconds for the query execution.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> a {@link SessionDataSet} containing the query results.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> StatementExecutionException</span><span style="color:#7F848E;font-style:italic;"> if an error occurs while executing the statement.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> IoTDBConnectionException</span><span style="color:#7F848E;font-style:italic;"> if there is an issue with the IoTDB connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#E5C07B;"> SessionDataSet</span><span style="color:#61AFEF;"> executeQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> sql</span><span style="color:#ABB2BF;">, </span><span style="color:#C678DD;">long</span><span style="color:#E06C75;font-style:italic;"> timeoutInMs</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#C678DD;"> throws</span><span style="color:#E5C07B;"> StatementExecutionException</span><span style="color:#ABB2BF;">,</span><span style="color:#E5C07B;"> IoTDBConnectionException</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Closes the session, releasing any held resources.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> IoTDBConnectionException</span><span style="color:#7F848E;font-style:italic;"> if there is an issue with closing the IoTDB connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#ABB2BF;"> @</span><span style="color:#E5C07B;">Override</span></span>
<span class="line"><span style="color:#C678DD;"> void</span><span style="color:#61AFEF;"> close</span><span style="color:#ABB2BF;">()</span><span style="color:#C678DD;"> throws</span><span style="color:#E5C07B;"> IoTDBConnectionException</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_3-2-tablesessionbuilder类" tabindex="-1"><a class="header-anchor" href="#_3-2-tablesessionbuilder类"><span>3.2 TableSessionBuilder类</span></a></h3><h4 id="_3-2-1-功能描述" tabindex="-1"><a class="header-anchor" href="#_3-2-1-功能描述"><span>3.2.1 功能描述</span></a></h4><p>TableSessionBuilder类是一个构建器,用于配置和创建ITableSession接口的实例。它允许开发者设置连接参数、查询参数和安全特性等。</p><h4 id="_3-2-2-配置选项" tabindex="-1"><a class="header-anchor" href="#_3-2-2-配置选项"><span>3.2.2 配置选项</span></a></h4><p>以下是TableSessionBuilder类中可用的配置选项及其默认值:</p><table><thead><tr><th><strong>配置项</strong></th><th><strong>描述</strong></th><th><strong>默认值</strong></th></tr></thead><tbody><tr><td>nodeUrls(List<code>&lt;String&gt;</code> nodeUrls)</td><td>设置IoTDB集群的节点URL列表</td><td>Collections.singletonList(&quot;localhost:6667&quot;)</td></tr><tr><td>username(String username)</td><td>设置连接的用户名</td><td>&quot;root&quot;</td></tr><tr><td>password(String password)</td><td>设置连接的密码</td><td>&quot;root&quot;</td></tr><tr><td>database(String database)</td><td>设置目标数据库名称</td><td>null</td></tr><tr><td>queryTimeoutInMs(long queryTimeoutInMs)</td><td>设置查询超时时间(毫秒)</td><td>60000(1分钟)</td></tr><tr><td>fetchSize(int fetchSize)</td><td>设置查询结果的获取大小</td><td>5000</td></tr><tr><td>zoneId(ZoneId zoneId)</td><td>设置时区相关的ZoneId</td><td>ZoneId.systemDefault()</td></tr><tr><td>thriftDefaultBufferSize(int thriftDefaultBufferSize)</td><td>设置Thrift客户端的默认缓冲区大小(字节)</td><td>1024(1KB)</td></tr><tr><td>thriftMaxFrameSize(int thriftMaxFrameSize)</td><td>设置Thrift客户端的最大帧大小(字节)</td><td>64 * 1024 * 1024(64MB)</td></tr><tr><td>enableRedirection(boolean enableRedirection)</td><td>是否启用集群节点的重定向</td><td>true</td></tr><tr><td>enableAutoFetch(boolean enableAutoFetch)</td><td>是否启用自动获取可用DataNodes</td><td>true</td></tr><tr><td>maxRetryCount(int maxRetryCount)</td><td>设置连接尝试的最大重试次数</td><td>60</td></tr><tr><td>retryIntervalInMs(long retryIntervalInMs)</td><td>设置重试间隔时间(毫秒)</td><td>500</td></tr><tr><td>useSSL(boolean useSSL)</td><td>是否启用SSL安全连接</td><td>false</td></tr><tr><td>trustStore(String keyStore)</td><td>设置SSL连接的信任库路径</td><td>null</td></tr><tr><td>trustStorePwd(String keyStorePwd)</td><td>设置SSL连接的信任库密码</td><td>null</td></tr><tr><td>enableCompression(boolean enableCompression)</td><td>是否启用RPC压缩</td><td>false</td></tr><tr><td>connectionTimeoutInMs(int connectionTimeoutInMs)</td><td>设置连接超时时间(毫秒)</td><td>0(无超时)</td></tr></tbody></table><h4 id="_3-2-3-接口展示" tabindex="-1"><a class="header-anchor" href="#_3-2-3-接口展示"><span>3.2.3 接口展示</span></a></h4><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="color:#7F848E;font-style:italic;">/**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * A builder class for constructing instances of {@link ITableSession}.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * &lt;p&gt;This builder provides a fluent API for configuring various options such as connection </span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * settings, query parameters, and security features.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * &lt;p&gt;All configurations have reasonable default values, which can be overridden as needed.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;">public</span><span style="color:#C678DD;"> class</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Builds and returns a configured {@link ITableSession} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> a fully configured {@link ITableSession}.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> IoTDBConnectionException</span><span style="color:#7F848E;font-style:italic;"> if an error occurs while establishing the connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> ITableSession</span><span style="color:#61AFEF;"> build</span><span style="color:#ABB2BF;">()</span><span style="color:#C678DD;"> throws</span><span style="color:#E5C07B;"> IoTDBConnectionException</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the list of node URLs for the IoTDB cluster.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> nodeUrls</span><span style="color:#7F848E;font-style:italic;"> a list of node URLs.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue Collection.singletonList(&quot;localhost:6667&quot;)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> nodeUrls</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">List</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#E5C07B;">String</span><span style="color:#ABB2BF;">&gt; </span><span style="color:#E06C75;font-style:italic;">nodeUrls</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the username for the connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> username</span><span style="color:#7F848E;font-style:italic;"> the username.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue &quot;root&quot;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> username</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> username</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the password for the connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> password</span><span style="color:#7F848E;font-style:italic;"> the password.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue &quot;root&quot;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> password</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> password</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the target database name.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> database</span><span style="color:#7F848E;font-style:italic;"> the database name.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue null</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> database</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> database</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the query timeout in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> queryTimeoutInMs</span><span style="color:#7F848E;font-style:italic;"> the query timeout in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 60000 (1 minute)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> queryTimeoutInMs</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">long</span><span style="color:#E06C75;font-style:italic;"> queryTimeoutInMs</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the fetch size for query results.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> fetchSize</span><span style="color:#7F848E;font-style:italic;"> the fetch size.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 5000</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> fetchSize</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> fetchSize</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the {@link ZoneId} for timezone-related operations.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> zoneId</span><span style="color:#7F848E;font-style:italic;"> the {@link ZoneId}.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue ZoneId.systemDefault()</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> zoneId</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">ZoneId</span><span style="color:#E06C75;font-style:italic;"> zoneId</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the default init buffer size for the Thrift client.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> thriftDefaultBufferSize</span><span style="color:#7F848E;font-style:italic;"> the buffer size in bytes.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 1024 (1 KB)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> thriftDefaultBufferSize</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> thriftDefaultBufferSize</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the maximum frame size for the Thrift client.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> thriftMaxFrameSize</span><span style="color:#7F848E;font-style:italic;"> the maximum frame size in bytes.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 64 * 1024 * 1024 (64 MB)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> thriftMaxFrameSize</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> thriftMaxFrameSize</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Enables or disables redirection for cluster nodes.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> enableRedirection</span><span style="color:#7F848E;font-style:italic;"> whether to enable redirection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue true</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> enableRedirection</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">boolean</span><span style="color:#E06C75;font-style:italic;"> enableRedirection</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Enables or disables automatic fetching of available DataNodes.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> enableAutoFetch</span><span style="color:#7F848E;font-style:italic;"> whether to enable automatic fetching.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue true</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> enableAutoFetch</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">boolean</span><span style="color:#E06C75;font-style:italic;"> enableAutoFetch</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the maximum number of retries for connection attempts.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> maxRetryCount</span><span style="color:#7F848E;font-style:italic;"> the maximum retry count.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 60</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> maxRetryCount</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> maxRetryCount</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the interval between retries in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> retryIntervalInMs</span><span style="color:#7F848E;font-style:italic;"> the interval in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 500 milliseconds</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> retryIntervalInMs</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">long</span><span style="color:#E06C75;font-style:italic;"> retryIntervalInMs</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Enables or disables SSL for secure connections.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> useSSL</span><span style="color:#7F848E;font-style:italic;"> whether to enable SSL.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue false</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> useSSL</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">boolean</span><span style="color:#E06C75;font-style:italic;"> useSSL</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the trust store path for SSL connections.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> keyStore</span><span style="color:#7F848E;font-style:italic;"> the trust store path.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue null</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> trustStore</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> keyStore</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the trust store password for SSL connections.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> keyStorePwd</span><span style="color:#7F848E;font-style:italic;"> the trust store password.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue null</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> trustStorePwd</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> keyStorePwd</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Enables or disables rpc compression for the connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> enableCompression</span><span style="color:#7F848E;font-style:italic;"> whether to enable compression.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue false</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> enableCompression</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">boolean</span><span style="color:#E06C75;font-style:italic;"> enableCompression</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the connection timeout in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> connectionTimeoutInMs</span><span style="color:#7F848E;font-style:italic;"> the connection timeout in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 0 (no timeout)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionBuilder</span><span style="color:#61AFEF;"> connectionTimeoutInMs</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> connectionTimeoutInMs</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><blockquote><p>注意: 原生API中创建表时,表名或列名中若含有特殊字符或中文字符,无需额外添加双引号括起,否则会包含引号字符。</p></blockquote><h2 id="_4-客户端连接池" tabindex="-1"><a class="header-anchor" href="#_4-客户端连接池"><span>4. 客户端连接池</span></a></h2><h3 id="_4-1-itablesessionpool-接口" tabindex="-1"><a class="header-anchor" href="#_4-1-itablesessionpool-接口"><span>4.1 ITableSessionPool 接口</span></a></h3><h4 id="_4-1-1-功能描述" tabindex="-1"><a class="header-anchor" href="#_4-1-1-功能描述"><span>4.1.1 功能描述</span></a></h4><p>ITableSessionPool 是一个用于管理 ITableSession实例的池。这个池可以帮助我们高效地重用连接,并且在不需要时正确地清理资源, 该接口定义了如何从池中获取会话以及如何关闭池的基本操作。</p><h4 id="_4-1-2-方法列表" tabindex="-1"><a class="header-anchor" href="#_4-1-2-方法列表"><span>4.1.2 方法列表</span></a></h4><table><thead><tr><th><strong>方法名</strong></th><th><strong>描述</strong></th><th><strong>返回值</strong></th><th><strong>返回异常</strong></th></tr></thead><tbody><tr><td>getSession()</td><td>从池中获取一个 ITableSession 实例,用于与 IoTDB 交互。</td><td>ITableSession 实例</td><td>IoTDBConnectionException</td></tr><tr><td>close()</td><td>关闭会话池,释放任何持有的资源。关闭后,不能再从池中获取新的会话。</td><td>无</td><td>无</td></tr></tbody></table><h4 id="_4-1-3-接口展示" tabindex="-1"><a class="header-anchor" href="#_4-1-3-接口展示"><span>4.1.3 接口展示</span></a></h4><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="color:#7F848E;font-style:italic;">/**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * This interface defines a pool for managing {@link ITableSession} instances.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * It provides methods to acquire a session from the pool and to close the pool.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * &lt;p&gt;The implementation should handle the lifecycle of sessions, ensuring efficient</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * reuse and proper cleanup of resources.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;">public</span><span style="color:#C678DD;"> interface</span><span style="color:#E5C07B;"> ITableSessionPool</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Acquires an {@link ITableSession} instance from the pool.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> an {@link ITableSession} instance for interacting with the IoTDB.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@throws</span><span style="color:#E5C07B;font-style:italic;"> IoTDBConnectionException</span><span style="color:#7F848E;font-style:italic;"> if there is an issue obtaining a session from the pool.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#E5C07B;"> ITableSession</span><span style="color:#61AFEF;"> getSession</span><span style="color:#ABB2BF;">()</span><span style="color:#C678DD;"> throws</span><span style="color:#E5C07B;"> IoTDBConnectionException</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Closes the session pool, releasing any held resources.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * &lt;p&gt;Once the pool is closed, no further sessions can be acquired.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> void</span><span style="color:#61AFEF;"> close</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_4-2-tablesessionpoolbuilder-类" tabindex="-1"><a class="header-anchor" href="#_4-2-tablesessionpoolbuilder-类"><span>4.2 TableSessionPoolBuilder 类</span></a></h3><h4 id="_4-2-1-功能描述" tabindex="-1"><a class="header-anchor" href="#_4-2-1-功能描述"><span>4.2.1 功能描述</span></a></h4><p>TableSessionPool 的构造器,用于配置和创建 ITableSessionPool 的实例。允许开发者配置连接参数、会话参数和池化行为等。</p><h4 id="_4-2-2-配置选项" tabindex="-1"><a class="header-anchor" href="#_4-2-2-配置选项"><span>4.2.2 配置选项</span></a></h4><p>以下是 TableSessionPoolBuilder 类的可用配置选项及其默认值:</p><table><thead><tr><th><strong>配置项</strong></th><th><strong>描述</strong></th><th><strong>默认值</strong></th></tr></thead><tbody><tr><td>nodeUrls(List<code>&lt;String&gt;</code> nodeUrls)</td><td>设置IoTDB集群的节点URL列表</td><td>Collections.singletonList(&quot;localhost:6667&quot;)</td></tr><tr><td>maxSize(int maxSize)</td><td>设置会话池的最大大小,即池中允许的最大会话数</td><td>5</td></tr><tr><td>user(String user)</td><td>设置连接的用户名</td><td>&quot;root&quot;</td></tr><tr><td>password(String password)</td><td>设置连接的密码</td><td>&quot;root&quot;</td></tr><tr><td>database(String database)</td><td>设置目标数据库名称</td><td>&quot;root&quot;</td></tr><tr><td>queryTimeoutInMs(long queryTimeoutInMs)</td><td>设置查询超时时间(毫秒)</td><td>600001分钟)</td></tr><tr><td>fetchSize(int fetchSize)</td><td>设置查询结果的获取大小</td><td>5000</td></tr><tr><td>zoneId(ZoneId zoneId)</td><td>设置时区相关的 ZoneId</td><td>ZoneId.systemDefault()</td></tr><tr><td>waitToGetSessionTimeoutInMs(long waitToGetSessionTimeoutInMs)</td><td>设置从池中获取会话的超时时间(毫秒)</td><td>3000030秒)</td></tr><tr><td>thriftDefaultBufferSize(int thriftDefaultBufferSize)</td><td>设置Thrift客户端的默认缓冲区大小(字节)</td><td>10241KB)</td></tr><tr><td>thriftMaxFrameSize(int thriftMaxFrameSize)</td><td>设置Thrift客户端的最大帧大小(字节)</td><td>64 * 1024 * 102464MB)</td></tr><tr><td>enableCompression(boolean enableCompression)</td><td>是否启用连接的压缩</td><td>false</td></tr><tr><td>enableRedirection(boolean enableRedirection)</td><td>是否启用集群节点的重定向</td><td>true</td></tr><tr><td>connectionTimeoutInMs(int connectionTimeoutInMs)</td><td>设置连接超时时间(毫秒)</td><td>1000010秒)</td></tr><tr><td>enableAutoFetch(boolean enableAutoFetch)</td><td>是否启用自动获取可用DataNodes</td><td>true</td></tr><tr><td>maxRetryCount(int maxRetryCount)</td><td>设置连接尝试的最大重试次数</td><td>60</td></tr><tr><td>retryIntervalInMs(long retryIntervalInMs)</td><td>设置重试间隔时间(毫秒)</td><td>500</td></tr><tr><td>useSSL(boolean useSSL)</td><td>是否启用SSL安全连接</td><td>false</td></tr><tr><td>trustStore(String keyStore)</td><td>设置SSL连接的信任库路径</td><td>null</td></tr><tr><td>trustStorePwd(String keyStorePwd)</td><td>设置SSL连接的信任库密码</td><td>null</td></tr></tbody></table><h4 id="_4-2-3-接口展示" tabindex="-1"><a class="header-anchor" href="#_4-2-3-接口展示"><span>4.2.3 接口展示</span></a></h4><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="color:#7F848E;font-style:italic;">/**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * A builder class for constructing instances of {@link ITableSessionPool}.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * &lt;p&gt;This builder provides a fluent API for configuring a session pool, including</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * connection settings, session parameters, and pool behavior.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * &lt;p&gt;All configurations have reasonable default values, which can be overridden as needed.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;">public</span><span style="color:#C678DD;"> class</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Builds and returns a configured {@link ITableSessionPool} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> a fully configured {@link ITableSessionPool}.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> ITableSessionPool</span><span style="color:#61AFEF;"> build</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the list of node URLs for the IoTDB cluster.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> nodeUrls</span><span style="color:#7F848E;font-style:italic;"> a list of node URLs.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue Collection.singletonList(&quot;localhost:6667&quot;)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> nodeUrls</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">List</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#E5C07B;">String</span><span style="color:#ABB2BF;">&gt; </span><span style="color:#E06C75;font-style:italic;">nodeUrls</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the maximum size of the session pool.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> maxSize</span><span style="color:#7F848E;font-style:italic;"> the maximum number of sessions allowed in the pool.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 5</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> maxSize</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> maxSize</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the username for the connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> user</span><span style="color:#7F848E;font-style:italic;"> the username.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue &quot;root&quot;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> user</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> user</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the password for the connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> password</span><span style="color:#7F848E;font-style:italic;"> the password.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue &quot;root&quot;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> password</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> password</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the target database name.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> database</span><span style="color:#7F848E;font-style:italic;"> the database name.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue &quot;root&quot;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> database</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> database</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the query timeout in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> queryTimeoutInMs</span><span style="color:#7F848E;font-style:italic;"> the query timeout in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 60000 (1 minute)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> queryTimeoutInMs</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">long</span><span style="color:#E06C75;font-style:italic;"> queryTimeoutInMs</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the fetch size for query results.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> fetchSize</span><span style="color:#7F848E;font-style:italic;"> the fetch size.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 5000</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> fetchSize</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> fetchSize</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the {@link ZoneId} for timezone-related operations.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> zoneId</span><span style="color:#7F848E;font-style:italic;"> the {@link ZoneId}.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue ZoneId.systemDefault()</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> zoneId</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">ZoneId</span><span style="color:#E06C75;font-style:italic;"> zoneId</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the timeout for waiting to acquire a session from the pool.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> waitToGetSessionTimeoutInMs</span><span style="color:#7F848E;font-style:italic;"> the timeout duration in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 30000 (30 seconds)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> waitToGetSessionTimeoutInMs</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">long</span><span style="color:#E06C75;font-style:italic;"> waitToGetSessionTimeoutInMs</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the default buffer size for the Thrift client.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> thriftDefaultBufferSize</span><span style="color:#7F848E;font-style:italic;"> the buffer size in bytes.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 1024 (1 KB)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> thriftDefaultBufferSize</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> thriftDefaultBufferSize</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the maximum frame size for the Thrift client.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> thriftMaxFrameSize</span><span style="color:#7F848E;font-style:italic;"> the maximum frame size in bytes.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 64 * 1024 * 1024 (64 MB)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> thriftMaxFrameSize</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> thriftMaxFrameSize</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Enables or disables compression for the connection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> enableCompression</span><span style="color:#7F848E;font-style:italic;"> whether to enable compression.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue false</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> enableCompression</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">boolean</span><span style="color:#E06C75;font-style:italic;"> enableCompression</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Enables or disables redirection for cluster nodes.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> enableRedirection</span><span style="color:#7F848E;font-style:italic;"> whether to enable redirection.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue true</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> enableRedirection</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">boolean</span><span style="color:#E06C75;font-style:italic;"> enableRedirection</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the connection timeout in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> connectionTimeoutInMs</span><span style="color:#7F848E;font-style:italic;"> the connection timeout in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 10000 (10 seconds)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> connectionTimeoutInMs</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> connectionTimeoutInMs</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Enables or disables automatic fetching of available DataNodes.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> enableAutoFetch</span><span style="color:#7F848E;font-style:italic;"> whether to enable automatic fetching.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue true</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> enableAutoFetch</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">boolean</span><span style="color:#E06C75;font-style:italic;"> enableAutoFetch</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the maximum number of retries for connection attempts.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> maxRetryCount</span><span style="color:#7F848E;font-style:italic;"> the maximum retry count.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 60</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> maxRetryCount</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">int</span><span style="color:#E06C75;font-style:italic;"> maxRetryCount</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the interval between retries in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> retryIntervalInMs</span><span style="color:#7F848E;font-style:italic;"> the interval in milliseconds.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue 500 milliseconds</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> retryIntervalInMs</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">long</span><span style="color:#E06C75;font-style:italic;"> retryIntervalInMs</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Enables or disables SSL for secure connections.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> useSSL</span><span style="color:#7F848E;font-style:italic;"> whether to enable SSL.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue false</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> useSSL</span><span style="color:#ABB2BF;">(</span><span style="color:#C678DD;">boolean</span><span style="color:#E06C75;font-style:italic;"> useSSL</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the trust store path for SSL connections.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> keyStore</span><span style="color:#7F848E;font-style:italic;"> the trust store path.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue null</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> trustStore</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> keyStore</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Sets the trust store password for SSL connections.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@param</span><span style="color:#E06C75;font-style:italic;"> keyStorePwd</span><span style="color:#7F848E;font-style:italic;"> the trust store password.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * </span><span style="color:#C678DD;font-style:italic;">@return</span><span style="color:#7F848E;font-style:italic;"> the current {@link TableSessionPoolBuilder} instance.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * @defaultValue null</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#E5C07B;"> TableSessionPoolBuilder</span><span style="color:#61AFEF;"> trustStorePwd</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> keyStorePwd</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="_5-示例代码" tabindex="-1"><a class="header-anchor" href="#_5-示例代码"><span>5. 示例代码</span></a></h2><p>Session 示例代码:<a href="https://github.com/apache/iotdb/blob/master/example/session/src/main/java/org/apache/iotdb/TableModelSessionExample.java" target="_blank" rel="noopener noreferrer">src/main/java/org/apache/iotdb/TableModelSessionExample.java</a></p><p>SessionPool 示例代码:<a href="https://github.com/apache/iotdb/blob/master/example/session/src/main/java/org/apache/iotdb/TableModelSessionPoolExample.java" target="_blank" rel="noopener noreferrer">src/main/java/org/apache/iotdb/TableModelSessionPoolExample.java</a></p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="color:#7F848E;font-style:italic;">/*</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Licensed to the Apache Software Foundation (ASF) under one</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * or more contributor license agreements. See the NOTICE file</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * distributed with this work for additional information</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * regarding copyright ownership. The ASF licenses this file</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * to you under the Apache License, Version 2.0 (the</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * &quot;License&quot;); you may not use this file except in compliance</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * with the License. You may obtain a copy of the License at</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * http://www.apache.org/licenses/LICENSE-2.0</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> *</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Unless required by applicable law or agreed to in writing,</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * software distributed under the License is distributed on an</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * KIND, either express or implied. See the License for the</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * specific language governing permissions and limitations</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * under the License.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;">package</span><span style="color:#C678DD;"> org.apache.iotdb</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.iotdb.isession.ITableSession</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.iotdb.isession.SessionDataSet</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.iotdb.isession.pool.ITableSessionPool</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.iotdb.rpc.IoTDBConnectionException</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.iotdb.rpc.StatementExecutionException</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.iotdb.session.pool.TableSessionPoolBuilder</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.tsfile.enums.ColumnCategory</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.tsfile.enums.TSDataType</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.tsfile.write.record.Tablet</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> java.util.ArrayList</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> java.util.Arrays</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> java.util.Collections</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> java.util.List</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#C678DD;"> static</span><span style="color:#E5C07B;"> org.apache.iotdb.SessionExample.printDataSet</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;">public</span><span style="color:#C678DD;"> class</span><span style="color:#E5C07B;"> TableModelSessionPoolExample</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;"> private</span><span style="color:#C678DD;"> static</span><span style="color:#C678DD;"> final</span><span style="color:#E5C07B;"> String</span><span style="color:#E06C75;"> LOCAL_URL </span><span style="color:#56B6C2;">=</span><span style="color:#98C379;"> &quot;127.0.0.1:6667&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;"> public</span><span style="color:#C678DD;"> static</span><span style="color:#C678DD;"> void</span><span style="color:#61AFEF;"> main</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#ABB2BF;">[] </span><span style="color:#E06C75;font-style:italic;">args</span><span style="color:#ABB2BF;">)</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // don&#39;t specify database in constructor</span></span>
<span class="line"><span style="color:#E5C07B;"> ITableSessionPool</span><span style="color:#E06C75;"> tableSessionPool</span><span style="color:#56B6C2;"> =</span></span>
<span class="line"><span style="color:#C678DD;"> new</span><span style="color:#61AFEF;"> TableSessionPoolBuilder</span><span style="color:#ABB2BF;">()</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">nodeUrls</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">Collections</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">singletonList</span><span style="color:#ABB2BF;">(LOCAL_URL))</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">user</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;root&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">password</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;root&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">maxSize</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">build</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">ITableSession</span><span style="color:#E06C75;"> session</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> tableSessionPool</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getSession</span><span style="color:#ABB2BF;">()) {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeNonQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;CREATE DATABASE test1&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeNonQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;CREATE DATABASE test2&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeNonQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;use test2&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // or use full qualified table name</span></span>
<span class="line"><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeNonQueryStatement</span><span style="color:#ABB2BF;">(</span></span>
<span class="line"><span style="color:#98C379;"> &quot;create table test1.table1(&quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;region_id STRING TAG, &quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;plant_id STRING TAG, &quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;device_id STRING TAG, &quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;model STRING ATTRIBUTE, &quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;temperature FLOAT FIELD, &quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;humidity DOUBLE FIELD) with (TTL=3600000)&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeNonQueryStatement</span><span style="color:#ABB2BF;">(</span></span>
<span class="line"><span style="color:#98C379;"> &quot;create table table2(&quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;region_id STRING TAG, &quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;plant_id STRING TAG, &quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;color STRING ATTRIBUTE, &quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;temperature FLOAT FIELD, &quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;speed DOUBLE FIELD) with (TTL=6600000)&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // show tables from current database</span></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">SessionDataSet</span><span style="color:#E06C75;"> dataSet</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;SHOW TABLES&quot;</span><span style="color:#ABB2BF;">)) {</span></span>
<span class="line"><span style="color:#61AFEF;"> printDataSet</span><span style="color:#ABB2BF;">(dataSet);</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // show tables by specifying another database</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // using SHOW tables FROM</span></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">SessionDataSet</span><span style="color:#E06C75;"> dataSet</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;SHOW TABLES FROM test1&quot;</span><span style="color:#ABB2BF;">)) {</span></span>
<span class="line"><span style="color:#61AFEF;"> printDataSet</span><span style="color:#ABB2BF;">(dataSet);</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // insert table data by tablet</span></span>
<span class="line"><span style="color:#E5C07B;"> List</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#E5C07B;">String</span><span style="color:#ABB2BF;">&gt; </span><span style="color:#E06C75;">columnNameList</span><span style="color:#56B6C2;"> =</span></span>
<span class="line"><span style="color:#E5C07B;"> Arrays</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">asList</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;region_id&quot;</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">&quot;plant_id&quot;</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">&quot;device_id&quot;</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">&quot;model&quot;</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">&quot;temperature&quot;</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">&quot;humidity&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> List</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#E5C07B;">TSDataType</span><span style="color:#ABB2BF;">&gt; </span><span style="color:#E06C75;">dataTypeList</span><span style="color:#56B6C2;"> =</span></span>
<span class="line"><span style="color:#E5C07B;"> Arrays</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">asList</span><span style="color:#ABB2BF;">(</span></span>
<span class="line"><span style="color:#E5C07B;"> TSDataType</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">STRING</span><span style="color:#ABB2BF;">,</span></span>
<span class="line"><span style="color:#E5C07B;"> TSDataType</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">STRING</span><span style="color:#ABB2BF;">,</span></span>
<span class="line"><span style="color:#E5C07B;"> TSDataType</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">STRING</span><span style="color:#ABB2BF;">,</span></span>
<span class="line"><span style="color:#E5C07B;"> TSDataType</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">STRING</span><span style="color:#ABB2BF;">,</span></span>
<span class="line"><span style="color:#E5C07B;"> TSDataType</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">FLOAT</span><span style="color:#ABB2BF;">,</span></span>
<span class="line"><span style="color:#E5C07B;"> TSDataType</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">DOUBLE</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> List</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#E5C07B;">ColumnCategory</span><span style="color:#ABB2BF;">&gt; </span><span style="color:#E06C75;">columnTypeList</span><span style="color:#56B6C2;"> =</span></span>
<span class="line"><span style="color:#C678DD;"> new</span><span style="color:#E5C07B;"> ArrayList</span><span style="color:#ABB2BF;">&lt;&gt;(</span></span>
<span class="line"><span style="color:#E5C07B;"> Arrays</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">asList</span><span style="color:#ABB2BF;">(</span></span>
<span class="line"><span style="color:#E5C07B;"> ColumnCategory</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">TAG</span><span style="color:#ABB2BF;">,</span></span>
<span class="line"><span style="color:#E5C07B;"> ColumnCategory</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">TAG</span><span style="color:#ABB2BF;">,</span></span>
<span class="line"><span style="color:#E5C07B;"> ColumnCategory</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">TAG</span><span style="color:#ABB2BF;">,</span></span>
<span class="line"><span style="color:#E5C07B;"> ColumnCategory</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">ATTRIBUTE</span><span style="color:#ABB2BF;">,</span></span>
<span class="line"><span style="color:#E5C07B;"> ColumnCategory</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">FIELD</span><span style="color:#ABB2BF;">,</span></span>
<span class="line"><span style="color:#E5C07B;"> ColumnCategory</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">FIELD</span><span style="color:#ABB2BF;">));</span></span>
<span class="line"><span style="color:#E5C07B;"> Tablet</span><span style="color:#E06C75;"> tablet</span><span style="color:#56B6C2;"> =</span><span style="color:#C678DD;"> new</span><span style="color:#61AFEF;"> Tablet</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;test1&quot;</span><span style="color:#ABB2BF;">, columnNameList, dataTypeList, columnTypeList, </span><span style="color:#D19A66;">100</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#C678DD;"> for</span><span style="color:#ABB2BF;"> (</span><span style="color:#C678DD;">long</span><span style="color:#E06C75;"> timestamp</span><span style="color:#56B6C2;"> =</span><span style="color:#D19A66;"> 0</span><span style="color:#ABB2BF;">; timestamp </span><span style="color:#56B6C2;">&lt;</span><span style="color:#D19A66;"> 100</span><span style="color:#ABB2BF;">; timestamp++) {</span></span>
<span class="line"><span style="color:#C678DD;"> int</span><span style="color:#E06C75;"> rowIndex</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getRowSize</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addTimestamp</span><span style="color:#ABB2BF;">(rowIndex, timestamp);</span></span>
<span class="line"><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addValue</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;region_id&quot;</span><span style="color:#ABB2BF;">, rowIndex, </span><span style="color:#98C379;">&quot;1&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addValue</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;plant_id&quot;</span><span style="color:#ABB2BF;">, rowIndex, </span><span style="color:#98C379;">&quot;5&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addValue</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;device_id&quot;</span><span style="color:#ABB2BF;">, rowIndex, </span><span style="color:#98C379;">&quot;3&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addValue</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;model&quot;</span><span style="color:#ABB2BF;">, rowIndex, </span><span style="color:#98C379;">&quot;A&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addValue</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;temperature&quot;</span><span style="color:#ABB2BF;">, rowIndex, </span><span style="color:#D19A66;">37.6F</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addValue</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;humidity&quot;</span><span style="color:#ABB2BF;">, rowIndex, </span><span style="color:#D19A66;">111.1</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#C678DD;"> if</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getRowSize</span><span style="color:#ABB2BF;">() </span><span style="color:#56B6C2;">==</span><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getMaxRowNumber</span><span style="color:#ABB2BF;">()) {</span></span>
<span class="line"><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">insert</span><span style="color:#ABB2BF;">(tablet);</span></span>
<span class="line"><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">reset</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"><span style="color:#C678DD;"> if</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getRowSize</span><span style="color:#ABB2BF;">() </span><span style="color:#56B6C2;">!=</span><span style="color:#D19A66;"> 0</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">insert</span><span style="color:#ABB2BF;">(tablet);</span></span>
<span class="line"><span style="color:#E5C07B;"> tablet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">reset</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // query table data</span></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">SessionDataSet</span><span style="color:#E06C75;"> dataSet</span><span style="color:#56B6C2;"> =</span></span>
<span class="line"><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQueryStatement</span><span style="color:#ABB2BF;">(</span></span>
<span class="line"><span style="color:#98C379;"> &quot;select * from test1 &quot;</span></span>
<span class="line"><span style="color:#56B6C2;"> +</span><span style="color:#98C379;"> &quot;where region_id = &#39;1&#39; and plant_id in (&#39;3&#39;, &#39;5&#39;) and device_id = &#39;3&#39;&quot;</span><span style="color:#ABB2BF;">)) {</span></span>
<span class="line"><span style="color:#61AFEF;"> printDataSet</span><span style="color:#ABB2BF;">(dataSet);</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF;"> } </span><span style="color:#C678DD;">catch</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">IoTDBConnectionException</span><span style="color:#E06C75;font-style:italic;"> e</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> e</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">printStackTrace</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;"> } </span><span style="color:#C678DD;">catch</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">StatementExecutionException</span><span style="color:#E06C75;font-style:italic;"> e</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> e</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">printStackTrace</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;"> } </span><span style="color:#C678DD;">finally</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#E5C07B;"> tableSessionPool</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">close</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // specify database in constructor</span></span>
<span class="line"><span style="color:#ABB2BF;"> tableSessionPool </span><span style="color:#56B6C2;">=</span></span>
<span class="line"><span style="color:#C678DD;"> new</span><span style="color:#61AFEF;"> TableSessionPoolBuilder</span><span style="color:#ABB2BF;">()</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">nodeUrls</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">Collections</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">singletonList</span><span style="color:#ABB2BF;">(LOCAL_URL))</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">user</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;root&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">password</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;root&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">maxSize</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">database</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;test1&quot;</span><span style="color:#ABB2BF;">)</span></span>
<span class="line"><span style="color:#ABB2BF;"> .</span><span style="color:#61AFEF;">build</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">ITableSession</span><span style="color:#E06C75;"> session</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> tableSessionPool</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getSession</span><span style="color:#ABB2BF;">()) {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // show tables from current database</span></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">SessionDataSet</span><span style="color:#E06C75;"> dataSet</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;SHOW TABLES&quot;</span><span style="color:#ABB2BF;">)) {</span></span>
<span class="line"><span style="color:#61AFEF;"> printDataSet</span><span style="color:#ABB2BF;">(dataSet);</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // change database to test2</span></span>
<span class="line"><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeNonQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;use test2&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // show tables by specifying another database</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // using SHOW tables FROM</span></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">SessionDataSet</span><span style="color:#E06C75;"> dataSet</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;SHOW TABLES&quot;</span><span style="color:#ABB2BF;">)) {</span></span>
<span class="line"><span style="color:#61AFEF;"> printDataSet</span><span style="color:#ABB2BF;">(dataSet);</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF;"> } </span><span style="color:#C678DD;">catch</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">IoTDBConnectionException</span><span style="color:#E06C75;font-style:italic;"> e</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> e</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">printStackTrace</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;"> } </span><span style="color:#C678DD;">catch</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">StatementExecutionException</span><span style="color:#E06C75;font-style:italic;"> e</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> e</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">printStackTrace</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">ITableSession</span><span style="color:#E06C75;"> session</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> tableSessionPool</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getSession</span><span style="color:#ABB2BF;">()) {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // show tables from default database test1</span></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">SessionDataSet</span><span style="color:#E06C75;"> dataSet</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> session</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;SHOW TABLES&quot;</span><span style="color:#ABB2BF;">)) {</span></span>
<span class="line"><span style="color:#61AFEF;"> printDataSet</span><span style="color:#ABB2BF;">(dataSet);</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#ABB2BF;"> } </span><span style="color:#C678DD;">catch</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">IoTDBConnectionException</span><span style="color:#E06C75;font-style:italic;"> e</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> e</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">printStackTrace</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;"> } </span><span style="color:#C678DD;">catch</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">StatementExecutionException</span><span style="color:#E06C75;font-style:italic;"> e</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> e</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">printStackTrace</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;"> } </span><span style="color:#C678DD;">finally</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#E5C07B;"> tableSessionPool</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">close</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"><span style="color:#ABB2BF;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,47)])])}const c=n(t,[["render",o]]),r=JSON.parse('{"path":"/zh/UserGuide/latest-Table/API/Programming-Java-Native-API_apache.html","title":"Java原生接口","lang":"zh-CN","frontmatter":{"description":"Java原生接口 1. 功能介绍 IoTDB具备Java原生客户端驱动和对应的连接池,提供对象化接口,可以直接组装时序对象进行写入,无需拼装 SQL。推荐使用连接池,多线程并行操作数据库。 2. 使用方式 环境要求: JDK >= 1.8 Maven >= 3.6 在maven中添加依赖: 可从此处查看iotdb-session最新版本 注意:请勿使用...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Java原生接口\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-04-15T10:39:00.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://iotdb.apache.org/zh/UserGuide/latest-Table/API/Programming-Java-Native-API_apache.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"Java原生接口"}],["meta",{"property":"og:description","content":"Java原生接口 1. 功能介绍 IoTDB具备Java原生客户端驱动和对应的连接池,提供对象化接口,可以直接组装时序对象进行写入,无需拼装 SQL。推荐使用连接池,多线程并行操作数据库。 2. 使用方式 环境要求: JDK >= 1.8 Maven >= 3.6 在maven中添加依赖: 可从此处查看iotdb-session最新版本 注意:请勿使用..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2026-04-15T10:39:00.000Z"}],["meta",{"property":"article:modified_time","content":"2026-04-15T10:39:00.000Z"}],["link",{"rel":"alternate","hreflang":"en-us","href":"https://iotdb.apache.org/UserGuide/latest-Table/API/Programming-Java-Native-API_apache.html"}]]},"git":{"createdTime":1735900165000,"updatedTime":1776249540000,"contributors":[{"name":"W1y1r","username":"W1y1r","email":"150988475+W1y1r@users.noreply.github.com","commits":2,"url":"https://github.com/W1y1r"},{"name":"leto-b","username":"leto-b","email":"bingqian.bai@timecho.com","commits":11,"url":"https://github.com/leto-b"},{"name":"Haonan","username":"Haonan","email":"hhaonan@outlook.com","commits":1,"url":"https://github.com/Haonan"}]},"readingTime":{"minutes":12.56,"words":3767},"filePathRelative":"zh/UserGuide/latest-Table/API/Programming-Java-Native-API_apache.md","autoDesc":true}');export{c as comp,r as data};