| import{_ as e,c as o,d as n,b as p,e as a,a as t,w as c,r,o as B}from"./app-C1IcKGP3.js";const i={};function y(d,s){const l=r("RouteLink");return B(),o("div",null,[s[6]||(s[6]=n("h1",{id:"jdbc",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#jdbc"},[n("span",null,"JDBC")])],-1)),n("p",null,[s[1]||(s[1]=n("strong",null,"注意",-1)),s[2]||(s[2]=a(": 目前的JDBC实现仅是为与第三方工具连接使用的。不推荐使用 JDBC (执行插入语句时),因无法提供高性能写入,查询推荐使用 JDBC。",-1)),s[3]||(s[3]=n("br",null,null,-1)),s[4]||(s[4]=a(" 对于Java应用,我们推荐使用",-1)),t(l,{to:"/zh/UserGuide/V1.3.x/API/Programming-Java-Native-API.html"},{default:c(()=>[...s[0]||(s[0]=[a("Java 原生接口",-1)])]),_:1}),s[5]||(s[5]=a("*",-1))]),s[7]||(s[7]=p(`<h2 id="依赖" tabindex="-1"><a class="header-anchor" href="#依赖"><span>依赖</span></a></h2><ul><li>JDK >= 1.8</li><li>Maven >= 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" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-shell"><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" 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;"><</span><span style="color:#E06C75;">dependencies</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">dependency</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">groupId</span><span style="color:#ABB2BF;">>org.apache.iotdb</</span><span style="color:#E06C75;">groupId</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">artifactId</span><span style="color:#ABB2BF;">>iotdb-jdbc</</span><span style="color:#E06C75;">artifactId</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">version</span><span style="color:#ABB2BF;">>1.3.1</</span><span style="color:#E06C75;">version</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> </</span><span style="color:#E06C75;">dependency</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"></</span><span style="color:#E06C75;">dependencies</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 class="line-number"></div><div class="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" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><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 'statement' and 'connection' 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;">"get connection defeat"</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;">"CREATE DATABASE root.demo"</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;">"SHOW DATABASES"</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;">"CREATE TIMESERIES root.demo.s0 WITH DATATYPE=INT32,ENCODING=RLE;"</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;">"SHOW TIMESERIES root.demo"</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;">"SHOW DEVICES"</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;">"COUNT TIMESERIES root"</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;">"COUNT NODES root LEVEL=3"</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;">"COUNT TIMESERIES root GROUP BY LEVEL=3"</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;">"insert into root.demo(timestamp,s0) values(1,1);"</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;">"insert into root.demo(timestamp,s0) values(2,15);"</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;">"insert into root.demo(timestamp,s0) values(2,17);"</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;">"insert into root.demo(timestamp,s0) values(4,12);"</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;"> "select * from root.demo"</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;">"sql: "</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;"> "select s0 from root.demo where time = 4;"</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;">"sql: "</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;"> "select s0 from root.demo where time >= 2 and time < 5;"</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;">"sql: "</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;"> "select count(s0) from root.demo;"</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;">"sql: "</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;">"delete timeseries root.demo.s0"</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;"> "org.apache.iotdb.jdbc.IoTDBDriver"</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;"> "jdbc:iotdb://127.0.0.1:6667/"</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 = "jdbc:iotdb://127.0.0.1:6667?rpc_compress=true";</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;"> "root"</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;"> "root"</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;">"--------------------------"</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;"><</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;"> " "</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;"><</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;">", "</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;">"--------------------------</span><span style="color:#56B6C2;">\\n</span><span style="color:#98C379;">"</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" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><span class="line"><span style="color:#E5C07B;">String</span><span style="color:#E06C75;"> url </span><span style="color:#56B6C2;">=</span><span style="color:#98C379;"> "jdbc:iotdb://127.0.0.1:6667?version=V_1_0"</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" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><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;">"jdbc:iotdb://127.0.0.1:6667?charset=GB18030"</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">"root"</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">"root"</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" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><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" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><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;"> " ("</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;"> ")"</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" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-java"><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;">"org.apache.iotdb.jdbc.IoTDBDriver"</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;"> "jdbc:iotdb://127.0.0.1:6667?charset=GB18030"</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">"root"</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">"root"</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;"> "insert into root.测试(timestamp, 维语, 彝语, 繁体, 蒙文, 简体, 标点符号, 藏语) values(1, 'ئۇيغۇر تىلى', 'ꆈꌠꉙ', </span><span style="color:#56B6C2;">\\"</span><span style="color:#98C379;">繁體</span><span style="color:#56B6C2;">\\"</span><span style="color:#98C379;">, 'ᠮᠣᠩᠭᠣᠯ ᠬᠡᠯᠡ', '简体', '——?!', </span><span style="color:#56B6C2;">\\"</span><span style="color:#98C379;">བོད་སྐད།</span><span style="color:#56B6C2;">\\"</span><span style="color:#98C379;">);"</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;">"GB18030"</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;">"IoTDB Jdbc example error"</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;">"GB18030"</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;">"UTF-8"</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;">"UTF-16"</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;">"GBK"</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;">"ISO-8859-1"</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;">"[Charset: "</span><span style="color:#56B6C2;"> +</span><span style="color:#ABB2BF;"> charset </span><span style="color:#56B6C2;">+</span><span style="color:#98C379;"> "]"</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;"> "jdbc:iotdb://127.0.0.1:6667?charset="</span><span style="color:#56B6C2;"> +</span><span style="color:#ABB2BF;"> charset, </span><span style="color:#98C379;">"root"</span><span style="color:#ABB2BF;">, </span><span style="color:#98C379;">"root"</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;">"select ** from root"</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;">"IoTDB Jdbc example error"</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;">"--------------------------"</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;"><</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;"> " "</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;"> " ("</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;"> ")"</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;"><</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;">", "</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;">"--------------------------</span><span style="color:#56B6C2;">\\n</span><span style="color:#98C379;">"</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 u=e(i,[["render",y]]),A=JSON.parse('{"path":"/zh/UserGuide/V1.3.x/API/Programming-JDBC.html","title":"JDBC","lang":"zh-CN","frontmatter":{"description":"JDBC 注意: 目前的JDBC实现仅是为与第三方工具连接使用的。不推荐使用 JDBC (执行插入语句时),因无法提供高性能写入,查询推荐使用 JDBC。 对于Java应用,我们推荐使用* 依赖 JDK >= 1.8 Maven >= 3.6 安装方法 在根目录下执行下面的命令: 在 MAVEN 中使用 IoTDB JDBC 示例代码 本章提供了如何建...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"JDBC\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-12T10:25:39.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://iotdb.apache.org/zh/UserGuide/V1.3.x/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 (执行插入语句时),因无法提供高性能写入,查询推荐使用 JDBC。 对于Java应用,我们推荐使用* 依赖 JDK >= 1.8 Maven >= 3.6 安装方法 在根目录下执行下面的命令: 在 MAVEN 中使用 IoTDB JDBC 示例代码 本章提供了如何建..."}],["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-01-12T10:25:39.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-12T10:25:39.000Z"}],["link",{"rel":"alternate","hreflang":"en-us","href":"https://iotdb.apache.org/UserGuide/V1.3.x/API/Programming-JDBC.html"}]]},"git":{"createdTime":1768213539000,"updatedTime":1768213539000,"contributors":[{"name":"CritasWang","username":"CritasWang","email":"critas@outlook.com","commits":1,"url":"https://github.com/CritasWang"}]},"readingTime":{"minutes":4.1,"words":1231},"filePathRelative":"zh/UserGuide/V1.3.x/API/Programming-JDBC.md","autoDesc":true}');export{u as comp,A as data}; |