blob: 2144763f7b86dea9f2404dc196288ee521d5200f [file] [log] [blame]
import{_ as e,c as o,d as n,b as p,e as a,a as t,f as c,r,o as B}from"./app-C-fAkKj6.js";const i={};function y(d,s){const l=r("RouteLink");return B(),o("div",null,[s[4]||(s[4]=n("h1",{id:"jdbc-不推荐",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#jdbc-不推荐"},[n("span",null,"JDBC(不推荐)")])],-1)),n("p",null,[n("em",null,[s[1]||(s[1]=a("注意: 目前的JDBC实现仅是为与第三方工具连接使用的。使用JDBC(执行插入语句时)无法提供高性能写入。")),s[2]||(s[2]=n("br",null,null,-1)),s[3]||(s[3]=a(" 对于Java应用,我们推荐使用")),t(l,{to:"/zh/UserGuide/dev-1.3/API/Programming-Java-Native-API.html"},{default:c(()=>s[0]||(s[0]=[a("Java 原生接口")])),_:1})])]),s[5]||(s[5]=p(`<h2 id="依赖" tabindex="-1"><a class="header-anchor" href="#依赖"><span>依赖</span></a></h2><ul><li>JDK &gt;= 1.8</li><li>Maven &gt;= 3.6</li></ul><h2 id="安装方法" tabindex="-1"><a class="header-anchor" href="#安装方法"><span>安装方法</span></a></h2><p>在根目录下执行下面的命令:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">mvn</span><span style="color:#98C379;"> clean</span><span style="color:#98C379;"> install</span><span style="color:#D19A66;"> -pl</span><span style="color:#98C379;"> iotdb-client/jdbc</span><span style="color:#D19A66;"> -am</span><span style="color:#D19A66;"> -DskipTests</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="在-maven-中使用-iotdb-jdbc" tabindex="-1"><a class="header-anchor" href="#在-maven-中使用-iotdb-jdbc"><span>在 MAVEN 中使用 IoTDB JDBC</span></a></h3><div class="language-xml line-numbers-mode" data-highlighter="shiki" data-ext="xml" data-title="xml" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><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-jdbc&lt;/</span><span style="color:#E06C75;">artifactId</span><span style="color:#ABB2BF;">&gt;</span></span>
<span class="line"><span style="color:#ABB2BF;"> &lt;</span><span style="color:#E06C75;">version</span><span style="color:#ABB2BF;">&gt;1.3.1&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></div><h3 id="示例代码" tabindex="-1"><a class="header-anchor" href="#示例代码"><span>示例代码</span></a></h3><p>本章提供了如何建立数据库连接、执行 SQL 和显示查询结果的示例。</p><p>要求您已经在工程中包含了数据库编程所需引入的包和 JDBC class.</p><p><strong>注意:为了更快地插入,建议使用 executeBatch()</strong></p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" data-title="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> java.sql.*</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;">import</span><span style="color:#E5C07B;"> org.apache.iotdb.jdbc.IoTDBSQLException</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;"> JDBCExample</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Before executing a SQL statement with a Statement object, you need to create a Statement object using the createStatement() method of the Connection object.</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * After creating a Statement object, you can use its execute() method to execute a SQL statement</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * Finally, remember to close the &#39;statement&#39; and &#39;connection&#39; objects by using their close() method</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * For statements with query results, we can use the getResultSet() method of the Statement object to get the result set.</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;"> 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:#C678DD;"> throws</span><span style="color:#E5C07B;"> SQLException</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#E5C07B;"> Connection</span><span style="color:#E06C75;"> connection</span><span style="color:#56B6C2;"> =</span><span style="color:#61AFEF;"> getConnection</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#C678DD;"> if</span><span style="color:#ABB2BF;"> (connection </span><span style="color:#56B6C2;">==</span><span style="color:#D19A66;"> null</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;get connection defeat&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#C678DD;"> return</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"><span style="color:#E5C07B;"> Statement</span><span style="color:#E06C75;"> statement</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> connection</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">createStatement</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Create database</span></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;CREATE DATABASE root.demo&quot;</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;">IoTDBSQLException</span><span style="color:#E06C75;font-style:italic;"> e</span><span style="color:#ABB2BF;">){</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">e</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getMessage</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;"> //SHOW DATABASES</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;SHOW DATABASES&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getResultSet</span><span style="color:#ABB2BF;">());</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Create time series</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Different data type has different encoding methods. Here use INT32 as an example</span></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;CREATE TIMESERIES root.demo.s0 WITH DATATYPE=INT32,ENCODING=RLE;&quot;</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;">IoTDBSQLException</span><span style="color:#E06C75;font-style:italic;"> e</span><span style="color:#ABB2BF;">){</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">e</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getMessage</span><span style="color:#ABB2BF;">());</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Show time series</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;SHOW TIMESERIES root.demo&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getResultSet</span><span style="color:#ABB2BF;">());</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Show devices</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;SHOW DEVICES&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getResultSet</span><span style="color:#ABB2BF;">());</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Count time series</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;COUNT TIMESERIES root&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getResultSet</span><span style="color:#ABB2BF;">());</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Count nodes at the given level</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;COUNT NODES root LEVEL=3&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getResultSet</span><span style="color:#ABB2BF;">());</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Count timeseries group by each node at the given level</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;COUNT TIMESERIES root GROUP BY LEVEL=3&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getResultSet</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;"> //Execute insert statements in batch</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addBatch</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;insert into root.demo(timestamp,s0) values(1,1);&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addBatch</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;insert into root.demo(timestamp,s0) values(2,15);&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addBatch</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;insert into root.demo(timestamp,s0) values(2,17);&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">addBatch</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;insert into root.demo(timestamp,s0) values(4,12);&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeBatch</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">clearBatch</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Full query statement</span></span>
<span class="line"><span style="color:#E5C07B;"> String</span><span style="color:#E06C75;"> sql</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> &quot;select * from root.demo&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#E5C07B;"> ResultSet</span><span style="color:#E06C75;"> resultSet</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQuery</span><span style="color:#ABB2BF;">(sql);</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;sql: &quot;</span><span style="color:#56B6C2;"> +</span><span style="color:#ABB2BF;"> sql);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(resultSet);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Exact query statement</span></span>
<span class="line"><span style="color:#ABB2BF;"> sql </span><span style="color:#56B6C2;">=</span><span style="color:#98C379;"> &quot;select s0 from root.demo where time = 4;&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#ABB2BF;"> resultSet</span><span style="color:#56B6C2;">=</span><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQuery</span><span style="color:#ABB2BF;">(sql);</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;sql: &quot;</span><span style="color:#56B6C2;"> +</span><span style="color:#ABB2BF;"> sql);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(resultSet);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Time range query</span></span>
<span class="line"><span style="color:#ABB2BF;"> sql </span><span style="color:#56B6C2;">=</span><span style="color:#98C379;"> &quot;select s0 from root.demo where time &gt;= 2 and time &lt; 5;&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#ABB2BF;"> resultSet </span><span style="color:#56B6C2;">=</span><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQuery</span><span style="color:#ABB2BF;">(sql);</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;sql: &quot;</span><span style="color:#56B6C2;"> +</span><span style="color:#ABB2BF;"> sql);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(resultSet);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Aggregate query</span></span>
<span class="line"><span style="color:#ABB2BF;"> sql </span><span style="color:#56B6C2;">=</span><span style="color:#98C379;"> &quot;select count(s0) from root.demo;&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#ABB2BF;"> resultSet </span><span style="color:#56B6C2;">=</span><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQuery</span><span style="color:#ABB2BF;">(sql);</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;sql: &quot;</span><span style="color:#56B6C2;"> +</span><span style="color:#ABB2BF;"> sql);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(resultSet);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //Delete time series</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;delete timeseries root.demo.s0&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> //close connection</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">close</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#E5C07B;"> connection</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:#C678DD;"> public</span><span style="color:#C678DD;"> static</span><span style="color:#E5C07B;"> Connection</span><span style="color:#61AFEF;"> getConnection</span><span style="color:#ABB2BF;">()</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // JDBC driver name and database URL</span></span>
<span class="line"><span style="color:#E5C07B;"> String</span><span style="color:#E06C75;"> driver</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> &quot;org.apache.iotdb.jdbc.IoTDBDriver&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#E5C07B;"> String</span><span style="color:#E06C75;"> url</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> &quot;jdbc:iotdb://127.0.0.1:6667/&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // set rpc compress mode</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // String url = &quot;jdbc:iotdb://127.0.0.1:6667?rpc_compress=true&quot;;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> // Database credentials</span></span>
<span class="line"><span style="color:#E5C07B;"> String</span><span style="color:#E06C75;"> username</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> &quot;root&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#E5C07B;"> String</span><span style="color:#E06C75;"> password</span><span style="color:#56B6C2;"> =</span><span style="color:#98C379;"> &quot;root&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#E5C07B;"> Connection</span><span style="color:#E06C75;"> connection</span><span style="color:#56B6C2;"> =</span><span style="color:#D19A66;"> null</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#E5C07B;"> Class</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">forName</span><span style="color:#ABB2BF;">(driver);</span></span>
<span class="line"><span style="color:#ABB2BF;"> connection </span><span style="color:#56B6C2;">=</span><span style="color:#E5C07B;"> DriverManager</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getConnection</span><span style="color:#ABB2BF;">(url, username, password);</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;">ClassNotFoundException</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;">SQLException</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 style="color:#C678DD;"> return</span><span style="color:#ABB2BF;"> connection;</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;"> /**</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> * This is an example of outputting the results in the ResultSet</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> */</span></span>
<span class="line"><span style="color:#C678DD;"> private</span><span style="color:#C678DD;"> static</span><span style="color:#C678DD;"> void</span><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">ResultSet</span><span style="color:#E06C75;font-style:italic;"> resultSet</span><span style="color:#ABB2BF;">)</span><span style="color:#C678DD;"> throws</span><span style="color:#E5C07B;"> SQLException</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#C678DD;"> if</span><span style="color:#ABB2BF;"> (resultSet </span><span style="color:#56B6C2;">!=</span><span style="color:#D19A66;"> null</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;--------------------------&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#C678DD;"> final</span><span style="color:#E5C07B;"> ResultSetMetaData</span><span style="color:#E06C75;"> metaData</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> resultSet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getMetaData</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#C678DD;"> final</span><span style="color:#C678DD;"> int</span><span style="color:#E06C75;"> columnCount</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> metaData</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getColumnCount</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;">int</span><span style="color:#E06C75;"> i</span><span style="color:#56B6C2;"> =</span><span style="color:#D19A66;"> 0</span><span style="color:#ABB2BF;">; i </span><span style="color:#56B6C2;">&lt;</span><span style="color:#ABB2BF;"> columnCount; i++) {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">print</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">metaData</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getColumnLabel</span><span style="color:#ABB2BF;">(i </span><span style="color:#56B6C2;">+</span><span style="color:#D19A66;"> 1</span><span style="color:#ABB2BF;">) </span><span style="color:#56B6C2;">+</span><span style="color:#98C379;"> &quot; &quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#C678DD;"> while</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">resultSet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">next</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;">int</span><span style="color:#E06C75;"> i</span><span style="color:#56B6C2;"> =</span><span style="color:#D19A66;"> 1</span><span style="color:#ABB2BF;">; ; i++) {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">print</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">resultSet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getString</span><span style="color:#ABB2BF;">(i));</span></span>
<span class="line"><span style="color:#C678DD;"> if</span><span style="color:#ABB2BF;"> (i </span><span style="color:#56B6C2;">&lt;</span><span style="color:#ABB2BF;"> columnCount) {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">print</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;, &quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#ABB2BF;"> } </span><span style="color:#C678DD;">else</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#C678DD;"> break</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>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;--------------------------</span><span style="color:#56B6C2;">\\n</span><span style="color:#98C379;">&quot;</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></div><p>可以在 url 中指定 version 参数:</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" data-title="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#E5C07B;">String</span><span style="color:#E06C75;"> url </span><span style="color:#56B6C2;">=</span><span style="color:#98C379;"> &quot;jdbc:iotdb://127.0.0.1:6667?version=V_1_0&quot;</span><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></div><p>version 表示客户端使用的 SQL 语义版本,用于升级 0.13 时兼容 0.12 的 SQL 语义,可能取值有:<code>V_0_12</code>、<code>V_0_13</code>、<code>V_1_0</code>。</p><p>此外,IoTDB 在 JDBC 中提供了额外的接口,供用户在连接中使用不同的字符集(例如 GB18030)读写数据库。<br> IoTDB 默认的字符集为 UTF-8。当用户期望使用 UTF-8 外的字符集时,需要在 JDBC 的连接中,指定 charset 属性。例如:</p><ol><li>使用 GB18030 的 charset 创建连接:</li></ol><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" data-title="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#E5C07B;">DriverManager</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getConnection</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;jdbc:iotdb://127.0.0.1:6667?charset=GB18030&quot;</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">&quot;root&quot;</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">&quot;root&quot;</span><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></div><ol start="2"><li>调用如下 <code>IoTDBStatement</code> 接口执行 SQL 时,可以接受 <code>byte[]</code> 编码的 SQL,该 SQL 将按照被指定的 charset 解析成字符串。</li></ol><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" data-title="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#C678DD;">public</span><span style="color:#C678DD;"> boolean</span><span style="color:#61AFEF;"> execute</span><span style="color:#E06C75;">(</span><span style="color:#C678DD;">byte</span><span style="color:#E06C75;">[] sql) throws SQLException</span><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></div><ol start="3"><li>查询结果输出时,可使用 <code>ResultSet</code> 的 <code>getBytes</code> 方法得到的 <code>byte[]</code>,<code>byte[]</code> 的编码使用连接指定的 charset 进行。</li></ol><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" data-title="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#E5C07B;">System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">print</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">resultSet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getString</span><span style="color:#ABB2BF;">(i) </span><span style="color:#56B6C2;">+</span><span style="color:#98C379;"> &quot; (&quot;</span><span style="color:#56B6C2;"> +</span><span style="color:#C678DD;"> new</span><span style="color:#61AFEF;"> String</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">resultSet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getBytes</span><span style="color:#ABB2BF;">(i), charset) </span><span style="color:#56B6C2;">+</span><span style="color:#98C379;"> &quot;)&quot;</span><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></div><p>以下是完整示例:</p><div class="language-java line-numbers-mode" data-highlighter="shiki" data-ext="java" data-title="java" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#C678DD;">public</span><span style="color:#C678DD;"> class</span><span style="color:#E5C07B;"> JDBCCharsetExample</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;"> Logger</span><span style="color:#E06C75;"> LOGGER </span><span style="color:#56B6C2;">=</span><span style="color:#E5C07B;"> LoggerFactory</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getLogger</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">JDBCCharsetExample</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">class</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:#C678DD;"> throws</span><span style="color:#E5C07B;"> Exception</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#E5C07B;"> Class</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">forName</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;org.apache.iotdb.jdbc.IoTDBDriver&quot;</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:#C678DD;">final</span><span style="color:#E5C07B;"> Connection</span><span style="color:#E06C75;"> connection</span><span style="color:#56B6C2;"> =</span></span>
<span class="line"><span style="color:#E5C07B;"> DriverManager</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getConnection</span><span style="color:#ABB2BF;">(</span></span>
<span class="line"><span style="color:#98C379;"> &quot;jdbc:iotdb://127.0.0.1:6667?charset=GB18030&quot;</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">&quot;root&quot;</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:#C678DD;"> final</span><span style="color:#E5C07B;"> IoTDBStatement</span><span style="color:#E06C75;"> statement</span><span style="color:#56B6C2;"> =</span><span style="color:#ABB2BF;"> (IoTDBStatement) </span><span style="color:#E5C07B;">connection</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">createStatement</span><span style="color:#ABB2BF;">()) {</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;"> final</span><span style="color:#E5C07B;"> String</span><span style="color:#E06C75;"> insertSQLWithGB18030</span><span style="color:#56B6C2;"> =</span></span>
<span class="line"><span style="color:#98C379;"> &quot;insert into root.测试(timestamp, 维语, 彝语, 繁体, 蒙文, 简体, 标点符号, 藏语) values(1, &#39;ئۇيغۇر تىلى&#39;, &#39;ꆈꌠꉙ&#39;, </span><span style="color:#56B6C2;">\\&quot;</span><span style="color:#98C379;">繁體</span><span style="color:#56B6C2;">\\&quot;</span><span style="color:#98C379;">, &#39;ᠮᠣᠩᠭᠣᠯ ᠬᠡᠯᠡ&#39;, &#39;简体&#39;, &#39;——?!&#39;, </span><span style="color:#56B6C2;">\\&quot;</span><span style="color:#98C379;">བོད་སྐད།</span><span style="color:#56B6C2;">\\&quot;</span><span style="color:#98C379;">);&quot;</span><span style="color:#ABB2BF;">;</span></span>
<span class="line"><span style="color:#C678DD;"> final</span><span style="color:#C678DD;"> byte</span><span style="color:#ABB2BF;">[] </span><span style="color:#E06C75;">insertSQLWithGB18030Bytes</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> insertSQLWithGB18030</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getBytes</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;GB18030&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#E5C07B;"> statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">execute</span><span style="color:#ABB2BF;">(insertSQLWithGB18030Bytes);</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;">IoTDBSQLException</span><span style="color:#E06C75;font-style:italic;"> e</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> LOGGER</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">error</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;IoTDB Jdbc example error&quot;</span><span style="color:#ABB2BF;">, e);</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;GB18030&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;UTF-8&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;UTF-16&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;GBK&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;ISO-8859-1&quot;</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;"> private</span><span style="color:#C678DD;"> static</span><span style="color:#C678DD;"> void</span><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">String</span><span style="color:#E06C75;font-style:italic;"> charset</span><span style="color:#ABB2BF;">)</span><span style="color:#C678DD;"> throws</span><span style="color:#E5C07B;"> SQLException</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;[Charset: &quot;</span><span style="color:#56B6C2;"> +</span><span style="color:#ABB2BF;"> charset </span><span style="color:#56B6C2;">+</span><span style="color:#98C379;"> &quot;]&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#C678DD;"> try</span><span style="color:#ABB2BF;"> (</span><span style="color:#C678DD;">final</span><span style="color:#E5C07B;"> Connection</span><span style="color:#E06C75;"> connection</span><span style="color:#56B6C2;"> =</span></span>
<span class="line"><span style="color:#E5C07B;"> DriverManager</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getConnection</span><span style="color:#ABB2BF;">(</span></span>
<span class="line"><span style="color:#98C379;"> &quot;jdbc:iotdb://127.0.0.1:6667?charset=&quot;</span><span style="color:#56B6C2;"> +</span><span style="color:#ABB2BF;"> charset, </span><span style="color:#98C379;">&quot;root&quot;</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:#C678DD;"> final</span><span style="color:#E5C07B;"> IoTDBStatement</span><span style="color:#E06C75;"> statement</span><span style="color:#56B6C2;"> =</span><span style="color:#ABB2BF;"> (IoTDBStatement) </span><span style="color:#E5C07B;">connection</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">createStatement</span><span style="color:#ABB2BF;">()) {</span></span>
<span class="line"><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">statement</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">executeQuery</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;select ** from root&quot;</span><span style="color:#ABB2BF;">), </span><span style="color:#E5C07B;">Charset</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">forName</span><span style="color:#ABB2BF;">(charset));</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;">IoTDBSQLException</span><span style="color:#E06C75;font-style:italic;"> e</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> LOGGER</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">error</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;IoTDB Jdbc example error&quot;</span><span style="color:#ABB2BF;">, e);</span></span>
<span class="line"><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;"> private</span><span style="color:#C678DD;"> static</span><span style="color:#C678DD;"> void</span><span style="color:#61AFEF;"> outputResult</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">ResultSet</span><span style="color:#E06C75;font-style:italic;"> resultSet</span><span style="color:#ABB2BF;">, </span><span style="color:#E5C07B;">Charset</span><span style="color:#E06C75;font-style:italic;"> charset</span><span style="color:#ABB2BF;">)</span><span style="color:#C678DD;"> throws</span><span style="color:#E5C07B;"> SQLException</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#C678DD;"> if</span><span style="color:#ABB2BF;"> (resultSet </span><span style="color:#56B6C2;">!=</span><span style="color:#D19A66;"> null</span><span style="color:#ABB2BF;">) {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;--------------------------&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#C678DD;"> final</span><span style="color:#E5C07B;"> ResultSetMetaData</span><span style="color:#E06C75;"> metaData</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> resultSet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getMetaData</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#C678DD;"> final</span><span style="color:#C678DD;"> int</span><span style="color:#E06C75;"> columnCount</span><span style="color:#56B6C2;"> =</span><span style="color:#E5C07B;"> metaData</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getColumnCount</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;">int</span><span style="color:#E06C75;"> i</span><span style="color:#56B6C2;"> =</span><span style="color:#D19A66;"> 0</span><span style="color:#ABB2BF;">; i </span><span style="color:#56B6C2;">&lt;</span><span style="color:#ABB2BF;"> columnCount; i++) {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">print</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">metaData</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getColumnLabel</span><span style="color:#ABB2BF;">(i </span><span style="color:#56B6C2;">+</span><span style="color:#D19A66;"> 1</span><span style="color:#ABB2BF;">) </span><span style="color:#56B6C2;">+</span><span style="color:#98C379;"> &quot; &quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#ABB2BF;"> }</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C678DD;"> while</span><span style="color:#ABB2BF;"> (</span><span style="color:#E5C07B;">resultSet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">next</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;">int</span><span style="color:#E06C75;"> i</span><span style="color:#56B6C2;"> =</span><span style="color:#D19A66;"> 1</span><span style="color:#ABB2BF;">; ; i++) {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">print</span><span style="color:#ABB2BF;">(</span></span>
<span class="line"><span style="color:#E5C07B;"> resultSet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getString</span><span style="color:#ABB2BF;">(i) </span><span style="color:#56B6C2;">+</span><span style="color:#98C379;"> &quot; (&quot;</span><span style="color:#56B6C2;"> +</span><span style="color:#C678DD;"> new</span><span style="color:#61AFEF;"> String</span><span style="color:#ABB2BF;">(</span><span style="color:#E5C07B;">resultSet</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">getBytes</span><span style="color:#ABB2BF;">(i), charset) </span><span style="color:#56B6C2;">+</span><span style="color:#98C379;"> &quot;)&quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#C678DD;"> if</span><span style="color:#ABB2BF;"> (i </span><span style="color:#56B6C2;">&lt;</span><span style="color:#ABB2BF;"> columnCount) {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">print</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;, &quot;</span><span style="color:#ABB2BF;">);</span></span>
<span class="line"><span style="color:#ABB2BF;"> } </span><span style="color:#C678DD;">else</span><span style="color:#ABB2BF;"> {</span></span>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">();</span></span>
<span class="line"><span style="color:#C678DD;"> break</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>
<span class="line"><span style="color:#E5C07B;"> System</span><span style="color:#ABB2BF;">.</span><span style="color:#E5C07B;">out</span><span style="color:#ABB2BF;">.</span><span style="color:#61AFEF;">println</span><span style="color:#ABB2BF;">(</span><span style="color:#98C379;">&quot;--------------------------</span><span style="color:#56B6C2;">\\n</span><span style="color:#98C379;">&quot;</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></div>`,24))])}const F=e(i,[["render",y],["__file","Programming-JDBC.html.vue"]]),v=JSON.parse('{"path":"/zh/UserGuide/dev-1.3/API/Programming-JDBC.html","title":"JDBC(不推荐)","lang":"zh-CN","frontmatter":{"description":"JDBC(不推荐) 注意: 目前的JDBC实现仅是为与第三方工具连接使用的。使用JDBC(执行插入语句时)无法提供高性能写入。 对于Java应用,我们推荐使用 依赖 JDK >= 1.8 Maven >= 3.6 安装方法 在根目录下执行下面的命令: MAVEN 中使用 IoTDB JDBC 示例代码 本章提供了如何建立数据库连接、执行 SQL 和...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://iotdb.apache.org/UserGuide/dev-1.3/API/Programming-JDBC.html"}],["meta",{"property":"og:url","content":"https://iotdb.apache.org/zh/UserGuide/dev-1.3/API/Programming-JDBC.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"JDBC(不推荐)"}],["meta",{"property":"og:description","content":"JDBC(不推荐) 注意: 目前的JDBC实现仅是为与第三方工具连接使用的。使用JDBC(执行插入语句时)无法提供高性能写入。 对于Java应用,我们推荐使用 依赖 JDK >= 1.8 Maven >= 3.6 安装方法 在根目录下执行下面的命令: 在 MAVEN 中使用 IoTDB JDBC 示例代码 本章提供了如何建立数据库连接、执行 SQL 和..."}],["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":"2025-02-21T09:31:28.000Z"}],["meta",{"property":"article:modified_time","content":"2025-02-21T09:31:28.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"JDBC(不推荐)\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-02-21T09:31:28.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"依赖","slug":"依赖","link":"#依赖","children":[]},{"level":2,"title":"安装方法","slug":"安装方法","link":"#安装方法","children":[{"level":3,"title":"在 MAVEN 中使用 IoTDB JDBC","slug":"在-maven-中使用-iotdb-jdbc","link":"#在-maven-中使用-iotdb-jdbc","children":[]},{"level":3,"title":"示例代码","slug":"示例代码","link":"#示例代码","children":[]}]}],"git":{"createdTime":1688958677000,"updatedTime":1740130288000,"contributors":[{"name":"CritasWang","username":"CritasWang","email":"critas@outlook.com","commits":1,"url":"https://github.com/CritasWang"},{"name":"Lei","username":"Lei","email":"33376433+LeiRui@users.noreply.github.com","commits":1,"url":"https://github.com/Lei"},{"name":"wanghui42","username":"wanghui42","email":"105700158+wanghui42@users.noreply.github.com","commits":1,"url":"https://github.com/wanghui42"},{"name":"Zhijia Cao","username":"Zhijia Cao","email":"caozhijia@126.com","commits":1,"url":"https://github.com/Zhijia Cao"},{"name":"majialin","username":"majialin","email":"107627937+mal117@users.noreply.github.com","commits":1,"url":"https://github.com/majialin"},{"name":"W1y1r","username":"W1y1r","email":"150988475+W1y1r@users.noreply.github.com","commits":3,"url":"https://github.com/W1y1r"},{"name":"Haonan","username":"Haonan","email":"hhaonan@outlook.com","commits":1,"url":"https://github.com/Haonan"},{"name":"Steve Yurong Su","username":"Steve Yurong Su","email":"rong@apache.org","commits":1,"url":"https://github.com/Steve Yurong Su"}]},"readingTime":{"minutes":4.08,"words":1223},"filePathRelative":"zh/UserGuide/dev-1.3/API/Programming-JDBC.md","localizedDate":"2023年7月10日","autoDesc":true}');export{F as comp,v as data};