| import{_ as e,c as o,d as n,b as p,e as a,a as t,f as c,r,o as i}from"./app-C8175JBb.js";const B={};function y(d,s){const l=r("RouteLink");return i(),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,"Note",-1)),s[2]||(s[2]=a(": The current JDBC implementation is only for connecting with third-party tools. We do not recommend using JDBC (when executing insert statements) as it cannot provide high-performance writing. For queries, we recommend using JDBC.")),s[3]||(s[3]=n("br",null,null,-1)),s[4]||(s[4]=a(" PLEASE USE ")),t(l,{to:"/UserGuide/latest/API/Programming-Java-Native-API.html"},{default:c(()=>s[0]||(s[0]=[a("Java Native API")])),_:1}),s[5]||(s[5]=a(" INSTEAD*"))]),s[7]||(s[7]=p(`<h2 id="_1-dependencies" tabindex="-1"><a class="header-anchor" href="#_1-dependencies"><span>1. Dependencies</span></a></h2><ul><li>JDK >= 1.8+</li><li>Maven >= 3.9+</li></ul><h2 id="_2-installation" tabindex="-1"><a class="header-anchor" href="#_2-installation"><span>2. Installation</span></a></h2><p>In root directory:</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><h2 id="_3-use-iotdb-jdbc-with-maven" tabindex="-1"><a class="header-anchor" href="#_3-use-iotdb-jdbc-with-maven"><span>3. Use IoTDB JDBC with Maven</span></a></h2><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;"><</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><h2 id="_4-coding-examples" tabindex="-1"><a class="header-anchor" href="#_4-coding-examples"><span>4. Coding Examples</span></a></h2><p>This chapter provides an example of how to open a database connection, execute an SQL query, and display the results.</p><p>It requires including the packages containing the JDBC classes needed for database programming.</p><p><strong>NOTE: For faster insertion, the insertTablet() in Session is recommended.</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 '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> |
| <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(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 class="line-number"></div><div class="line-number"></div></div></div><p>The parameter <code>version</code> can be used in the url:</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;"> "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>The parameter <code>version</code> represents the SQL semantic version used by the client, which is used in order to be compatible with the SQL semantics of <code>0.12</code> when upgrading to <code>0.13</code>.<br> The possible values are: <code>V_0_12</code>, <code>V_0_13</code>, <code>V_1_0</code>.</p><p>In addition, IoTDB provides additional interfaces in JDBC for users to read and write the database using different character sets (e.g., GB18030) in the connection.<br> The default character set for IoTDB is UTF-8. When users want to use a character set other than UTF-8, they need to specify the charset property in the JDBC connection. For example:</p><ol><li>Create a connection using the 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;">"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>When executing SQL with the <code>IoTDBStatement</code> interface, the SQL can be provided as a <code>byte[]</code> array, and it will be parsed into a string according to the specified 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>When outputting query results, the <code>getBytes</code> method of <code>ResultSet</code> can be used to get <code>byte[]</code>, which will be encoded using the charset specified in the connection.</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;"> " ("</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>Here is a complete example:</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;">"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 F=e(B,[["render",y],["__file","Programming-JDBC.html.vue"]]),m=JSON.parse('{"path":"/UserGuide/latest/API/Programming-JDBC.html","title":"JDBC","lang":"en-US","frontmatter":{"description":"JDBC Note: The current JDBC implementation is only for connecting with third-party tools. We do not recommend using JDBC (when executing insert statements) as it cannot provide ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://iotdb.apache.org/zh/UserGuide/latest/API/Programming-JDBC.html"}],["meta",{"property":"og:url","content":"https://iotdb.apache.org/UserGuide/latest/API/Programming-JDBC.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"JDBC"}],["meta",{"property":"og:description","content":"JDBC Note: The current JDBC implementation is only for connecting with third-party tools. We do not recommend using JDBC (when executing insert statements) as it cannot provide ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-04-22T04:18:28.000Z"}],["meta",{"property":"article:modified_time","content":"2025-04-22T04:18:28.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"JDBC\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-04-22T04:18:28.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"1. Dependencies","slug":"_1-dependencies","link":"#_1-dependencies","children":[]},{"level":2,"title":"2. Installation","slug":"_2-installation","link":"#_2-installation","children":[]},{"level":2,"title":"3. Use IoTDB JDBC with Maven","slug":"_3-use-iotdb-jdbc-with-maven","link":"#_3-use-iotdb-jdbc-with-maven","children":[]},{"level":2,"title":"4. Coding Examples","slug":"_4-coding-examples","link":"#_4-coding-examples","children":[]}],"git":{"createdTime":1688958677000,"updatedTime":1745295508000,"contributors":[{"name":"CritasWang","username":"CritasWang","email":"critas@outlook.com","commits":3,"url":"https://github.com/CritasWang"},{"name":"Lei","username":"Lei","email":"33376433+LeiRui@users.noreply.github.com","commits":1,"url":"https://github.com/Lei"},{"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":4,"url":"https://github.com/W1y1r"},{"name":"Haonan","username":"Haonan","email":"hhaonan@outlook.com","commits":1,"url":"https://github.com/Haonan"},{"name":"Mister-Hope","username":"Mister-Hope","email":"mister-hope@outlook.com","commits":1,"url":"https://github.com/Mister-Hope"},{"name":"leto-b","username":"leto-b","email":"bingqian.bai@timecho.com","commits":1,"url":"https://github.com/leto-b"}]},"readingTime":{"minutes":3.81,"words":1144},"filePathRelative":"UserGuide/latest/API/Programming-JDBC.md","localizedDate":"July 10, 2023","autoDesc":true}');export{F as comp,m as data}; |