Package com.databend.jdbc

## Class DatabendConnection

- java.lang.Object
- - com.databend.jdbc.DatabendConnection

All Implemented Interfaces:
  `DatabendConnectionExtension`, `FileTransferAPI`, `AutoCloseable`, `Connection`, `Wrapper`, `Consumer<com.databend.client.DatabendSession>`

    public class DatabendConnection
    extends Object
    implements Connection, DatabendConnectionExtension, FileTransferAPI, Consumer<com.databend.client.DatabendSession>

### Nested Class Summary

### Nested classes/interfaces inherited from interface com.databend.jdbc.DatabendConnectionExtension

`DatabendConnectionExtension.LoadMethod`

### Field Summary

### Fields inherited from interface java.sql.Connection

`TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `abort​(Executor executor)`
`void` `accept​(com.databend.client.DatabendSession session)`
`void` `clearWarnings()`
`void` `close()`
`void` `commit()`
`void` `copyIntoTable​(String database, String tableName, DatabendCopyParams params)` Copy into the target table from files on the internal stage Documentation: ...
`Array` `createArrayOf​(String s, Object[] objects)`
`Blob` `createBlob()`
`Clob` `createClob()`
`NClob` `createNClob()`
`SQLXML` `createSQLXML()`
`Statement` `createStatement()`
`Statement` `createStatement​(int resultSetType, int resultSetConcurrency)`
`Statement` `createStatement​(int resultSetType, int resultSetConcurrency, int resultSetHoldability)`
`Struct` `createStruct​(String s, Object[] objects)`
`InputStream` `downloadStream​(String stageName, String path)` Download a file from the databend internal stage, the data would be downloaded as one file with no split.
`InputStream` `downloadStream​(String stageName, String path, boolean decompress)` Deprecated. Use `downloadStream(String, String)` instead.
`boolean` `getAutoCommit()`
`String` `getCatalog()`
`Properties` `getClientInfo()`
`String` `getClientInfo​(String s)`
`int` `getHoldability()`
`int` `getMaxFailoverRetries()`
`DatabaseMetaData` `getMetaData()`
`int` `getNetworkTimeout()`
`String` `getSchema()`
`int` `getTransactionIsolation()`
`Map<String,​Class<?>>` `getTypeMap()`
`URI` `getURI()`
`SQLWarning` `getWarnings()`
`boolean` `isClosed()`
`boolean` `isReadOnly()`
`boolean` `isValid​(int i)`
`boolean` `isWrapperFor​(Class<?> aClass)`
`int` `loadStreamToTable​(String sql, InputStream inputStream, long fileSize, DatabendConnectionExtension.LoadMethod loadMethod)` Loads data from an input stream directly into a target Databend table using the specified SQL command.
`String` `nativeSQL​(String sql)`
`CallableStatement` `prepareCall​(String s)`
`CallableStatement` `prepareCall​(String s, int i, int i1)`
`CallableStatement` `prepareCall​(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)`
`PreparedStatement` `prepareStatement​(String s)`
`PreparedStatement` `prepareStatement​(String s, int autoGeneratedKeys)`
`PreparedStatement` `prepareStatement​(String s, int[] ints)`
`PreparedStatement` `prepareStatement​(String s, int i, int i1)`
`PreparedStatement` `prepareStatement​(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)`
`PreparedStatement` `prepareStatement​(String s, String[] strings)`
`void` `releaseSavepoint​(Savepoint savepoint)`
`void` `rollback()`
`void` `rollback​(Savepoint savepoint)`
`void` `setAutoCommit​(boolean b)`
`void` `setCatalog​(String s)`
`void` `setClientInfo​(String s, String s1)`
`void` `setClientInfo​(Properties properties)`
`void` `setHoldability​(int holdability)`
`void` `setNetworkTimeout​(Executor executor, int i)`
`void` `setReadOnly​(boolean b)`
`Savepoint` `setSavepoint()`
`Savepoint` `setSavepoint​(String s)`
`void` `setSchema​(String schema)`
`void` `setTransactionIsolation​(int i)`
`void` `setTypeMap​(Map<String,​Class<?>> map)`
`<T> T` `unwrap​(Class<T> aClass)`
`void` `uploadStream​(InputStream inputStream, String stageName, String destPrefix, String destFileName, long fileSize, boolean compressData)` Upload inputStream to the databend internal stage, the data would be uploaded as one file with no split.
`void` `uploadStream​(String stageName, String destPrefix, InputStream inputStream, String destFileName, long fileSize, boolean compressData)` Method to put data from a stream at a stage location.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.util.function.Consumer

`andThen`

### Method Detail

#### createStatement

    public Statement createStatement()
                              throws SQLException

Specified by:
  `createStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String s)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareCall

    public CallableStatement prepareCall​(String s)
                                  throws SQLException

Specified by:
  `prepareCall` in interface `Connection`
Throws:
  `SQLException`

#### nativeSQL

    public String nativeSQL​(String sql)
                     throws SQLException

Specified by:
  `nativeSQL` in interface `Connection`
Throws:
  `SQLException`

#### commit

    public void commit()
                throws SQLException

Specified by:
  `commit` in interface `Connection`
Throws:
  `SQLException`

#### getAutoCommit

    public boolean getAutoCommit()
                          throws SQLException

Specified by:
  `getAutoCommit` in interface `Connection`
Throws:
  `SQLException`

#### setAutoCommit

    public void setAutoCommit​(boolean b)
                       throws SQLException

Specified by:
  `setAutoCommit` in interface `Connection`
Throws:
  `SQLException`

#### rollback

    public void rollback()
                  throws SQLException

Specified by:
  `rollback` in interface `Connection`
Throws:
  `SQLException`

#### close

    public void close()
               throws SQLException

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Connection`
Throws:
  `SQLException`

#### isClosed

    public boolean isClosed()
                     throws SQLException

Specified by:
  `isClosed` in interface `Connection`
Throws:
  `SQLException`

#### getMetaData

    public DatabaseMetaData getMetaData()
                                 throws SQLException

Specified by:
  `getMetaData` in interface `Connection`
Throws:
  `SQLException`

#### isReadOnly

    public boolean isReadOnly()
                       throws SQLException

Specified by:
  `isReadOnly` in interface `Connection`
Throws:
  `SQLException`

#### setReadOnly

    public void setReadOnly​(boolean b)
                     throws SQLException

Specified by:
  `setReadOnly` in interface `Connection`
Throws:
  `SQLException`

#### getCatalog

    public String getCatalog()
                      throws SQLException

Specified by:
  `getCatalog` in interface `Connection`
Throws:
  `SQLException`

#### setCatalog

    public void setCatalog​(String s)
                    throws SQLException

Specified by:
  `setCatalog` in interface `Connection`
Throws:
  `SQLException`

#### getTransactionIsolation

    public int getTransactionIsolation()
                                throws SQLException

Specified by:
  `getTransactionIsolation` in interface `Connection`
Throws:
  `SQLException`

#### setTransactionIsolation

    public void setTransactionIsolation​(int i)
                                 throws SQLException

Specified by:
  `setTransactionIsolation` in interface `Connection`
Throws:
  `SQLException`

#### getWarnings

    public SQLWarning getWarnings()
                           throws SQLException

Specified by:
  `getWarnings` in interface `Connection`
Throws:
  `SQLException`

#### clearWarnings

    public void clearWarnings()
                       throws SQLException

Specified by:
  `clearWarnings` in interface `Connection`
Throws:
  `SQLException`

#### createStatement

    public Statement createStatement​(int resultSetType,
                                     int resultSetConcurrency)
                              throws SQLException

Specified by:
  `createStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String s,
                                              int i,
                                              int i1)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareCall

    public CallableStatement prepareCall​(String s,
                                         int i,
                                         int i1)
                                  throws SQLException

Specified by:
  `prepareCall` in interface `Connection`
Throws:
  `SQLException`

#### getTypeMap

    public Map<String,​Class<?>> getTypeMap()
                                          throws SQLException

Specified by:
  `getTypeMap` in interface `Connection`
Throws:
  `SQLException`

#### setTypeMap

    public void setTypeMap​(Map<String,​Class<?>> map)
                    throws SQLException

Specified by:
  `setTypeMap` in interface `Connection`
Throws:
  `SQLException`

#### getHoldability

    public int getHoldability()
                       throws SQLException

Specified by:
  `getHoldability` in interface `Connection`
Throws:
  `SQLException`

#### getMaxFailoverRetries

    public int getMaxFailoverRetries()

#### setHoldability

    @NotImplemented
    public void setHoldability​(int holdability)
                        throws SQLException

Specified by:
  `setHoldability` in interface `Connection`
Throws:
  `SQLException`

#### setSavepoint

    public Savepoint setSavepoint()
                           throws SQLException

Specified by:
  `setSavepoint` in interface `Connection`
Throws:
  `SQLException`

#### setSavepoint

    public Savepoint setSavepoint​(String s)
                           throws SQLException

Specified by:
  `setSavepoint` in interface `Connection`
Throws:
  `SQLException`

#### rollback

    public void rollback​(Savepoint savepoint)
                  throws SQLException

Specified by:
  `rollback` in interface `Connection`
Throws:
  `SQLException`

#### releaseSavepoint

    public void releaseSavepoint​(Savepoint savepoint)
                          throws SQLException

Specified by:
  `releaseSavepoint` in interface `Connection`
Throws:
  `SQLException`

#### createStatement

    public Statement createStatement​(int resultSetType,
                                     int resultSetConcurrency,
                                     int resultSetHoldability)
                              throws SQLException

Specified by:
  `createStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String sql,
                                              int resultSetType,
                                              int resultSetConcurrency,
                                              int resultSetHoldability)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareCall

    public CallableStatement prepareCall​(String sql,
                                         int resultSetType,
                                         int resultSetConcurrency,
                                         int resultSetHoldability)
                                  throws SQLException

Specified by:
  `prepareCall` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String s,
                                              int autoGeneratedKeys)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String s,
                                              int[] ints)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String s,
                                              String[] strings)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### createClob

    public Clob createClob()
                    throws SQLException

Specified by:
  `createClob` in interface `Connection`
Throws:
  `SQLException`

#### createBlob

    public Blob createBlob()
                    throws SQLException

Specified by:
  `createBlob` in interface `Connection`
Throws:
  `SQLException`

#### createNClob

    public NClob createNClob()
                      throws SQLException

Specified by:
  `createNClob` in interface `Connection`
Throws:
  `SQLException`

#### createSQLXML

    public SQLXML createSQLXML()
                        throws SQLException

Specified by:
  `createSQLXML` in interface `Connection`
Throws:
  `SQLException`

#### isValid

    public boolean isValid​(int i)
                    throws SQLException

Specified by:
  `isValid` in interface `Connection`
Throws:
  `SQLException`

#### setClientInfo

    public void setClientInfo​(String s,
                              String s1)
                       throws SQLClientInfoException

Specified by:
  `setClientInfo` in interface `Connection`
Throws:
  `SQLClientInfoException`

#### getClientInfo

    public String getClientInfo​(String s)
                         throws SQLException

Specified by:
  `getClientInfo` in interface `Connection`
Throws:
  `SQLException`

#### getClientInfo

    public Properties getClientInfo()
                             throws SQLException

Specified by:
  `getClientInfo` in interface `Connection`
Throws:
  `SQLException`

#### setClientInfo

    public void setClientInfo​(Properties properties)
                       throws SQLClientInfoException

Specified by:
  `setClientInfo` in interface `Connection`
Throws:
  `SQLClientInfoException`

#### createArrayOf

    public Array createArrayOf​(String s,
                               Object[] objects)
                        throws SQLException

Specified by:
  `createArrayOf` in interface `Connection`
Throws:
  `SQLException`

#### createStruct

    public Struct createStruct​(String s,
                               Object[] objects)
                        throws SQLException

Specified by:
  `createStruct` in interface `Connection`
Throws:
  `SQLException`

#### getSchema

    public String getSchema()
                     throws SQLException

Specified by:
  `getSchema` in interface `Connection`
Throws:
  `SQLException`

#### setSchema

    public void setSchema​(String schema)
                   throws SQLException

Specified by:
  `setSchema` in interface `Connection`
Throws:
  `SQLException`

#### abort

    public void abort​(Executor executor)
               throws SQLException

Specified by:
  `abort` in interface `Connection`
Throws:
  `SQLException`

#### setNetworkTimeout

    public void setNetworkTimeout​(Executor executor,
                                  int i)
                           throws SQLException

Specified by:
  `setNetworkTimeout` in interface `Connection`
Throws:
  `SQLException`

#### getNetworkTimeout

    public int getNetworkTimeout()
                          throws SQLException

Specified by:
  `getNetworkTimeout` in interface `Connection`
Throws:
  `SQLException`

#### unwrap

    public <T> T unwrap​(Class<T> aClass)
                 throws SQLException

Specified by:
  `unwrap` in interface `Wrapper`
Throws:
  `SQLException`

#### isWrapperFor

    public boolean isWrapperFor​(Class<?> aClass)
                         throws SQLException

Specified by:
  `isWrapperFor` in interface `Wrapper`
Throws:
  `SQLException`

#### getURI

    public URI getURI()

#### accept

    public void accept​(com.databend.client.DatabendSession session)

Specified by:
  `accept` in interface `Consumer<com.databend.client.DatabendSession>`

#### uploadStream

    public void uploadStream​(InputStream inputStream,
                             String stageName,
                             String destPrefix,
                             String destFileName,
                             long fileSize,
                             boolean compressData)
                      throws SQLException

Description copied from interface: `DatabendConnectionExtension`
Upload inputStream to the databend internal stage, the data would be uploaded as one file with no split. Caller should close the input stream after the upload is done.

Specified by:
  `uploadStream` in interface `DatabendConnectionExtension`
Parameters:
  `inputStream` - the input stream of the file
  `stageName` - the stage which receive uploaded file
  `destPrefix` - the prefix of the file name in the stage
  `destFileName` - the destination file name in the stage
  `fileSize` - the file size in the stage
  `compressData` - whether to compress the data
Throws:
  `SQLException` - failed to upload input stream

#### uploadStream

    public void uploadStream​(String stageName,
                             String destPrefix,
                             InputStream inputStream,
                             String destFileName,
                             long fileSize,
                             boolean compressData)
                      throws SQLException

Method to put data from a stream at a stage location. The data will be uploaded as one file. No splitting is done in this method.

Stream size must match the total size of data in the input stream unless compressData parameter is set to true.

caller is responsible for passing the correct size for the data in the stream and releasing the inputStream after the method is called.

Note this method is deprecated since streamSize is not required now. Keep the function signature for backward compatibility

Specified by:
  `uploadStream` in interface `DatabendConnectionExtension`
Specified by:
  `uploadStream` in interface `FileTransferAPI`
Parameters:
  `stageName` - stage name: e.g. ~ or table name or stage name
  `destPrefix` - path prefix under which the data should be uploaded on the stage
  `inputStream` - input stream from which the data will be uploaded
  `destFileName` - destination file name to use
  `fileSize` - data size in the stream
  `compressData` - whether to compress the data
Throws:
  `SQLException` - failed to put data from a stream at stage

#### downloadStream

    public InputStream downloadStream​(String stageName,
                                      String path)
                               throws SQLException

Description copied from interface: `DatabendConnectionExtension`
Download a file from the databend internal stage, the data would be downloaded as one file with no split.

Specified by:
  `downloadStream` in interface `DatabendConnectionExtension`
Parameters:
  `stageName` - the stage which contains the file
  `path` - the file name in the stage
Returns:
  the input stream of the file
Throws:
  `SQLException` - failed to download input stream

#### downloadStream

    public InputStream downloadStream​(String stageName,
                                      String path,
                                      boolean decompress)
                               throws SQLException

Description copied from interface: `FileTransferAPI`
Deprecated. Use `downloadStream(String, String)` instead. Download a file from the databend internal stage, the data would be downloaded as one file with no split.

Specified by:
  `downloadStream` in interface `FileTransferAPI`
Parameters:
  `stageName` - the stage which contains the file
  `path` - the file name in the stage
  `decompress` - whether to decompress the data
Returns:
  the input stream of the file
Throws:
  `SQLException` - failed to download input stream

#### copyIntoTable

    public void copyIntoTable​(String database,
                              String tableName,
                              DatabendCopyParams params)
                       throws SQLException

Description copied from interface: `FileTransferAPI`
Copy into the target table from files on the internal stage Documentation: ...

Specified by:
  `copyIntoTable` in interface `FileTransferAPI`
Parameters:
  `database` - the target table's database
  `tableName` - the target table name
  `params` - copy options and file options
Throws:
  `SQLException` - fail to copy into table

#### loadStreamToTable

    public int loadStreamToTable​(String sql,
                                 InputStream inputStream,
                                 long fileSize,
                                 DatabendConnectionExtension.LoadMethod loadMethod)
                          throws SQLException

Description copied from interface: `DatabendConnectionExtension`
Loads data from an input stream directly into a target Databend table using the specified SQL command. Supports two loading strategies via `DatabendConnectionExtension.LoadMethod`.

Specified by:
  `loadStreamToTable` in interface `DatabendConnectionExtension`
Parameters:
  `sql` - SQL command with Databend's load syntax: `INSERT INTO <table> [(<columns>)] FROM @_databend_load [file_format=(...)]`
  `inputStream` - Input stream containing the data to load into the table
  `fileSize` - Size of the data (in bytes) to be loaded
  `loadMethod` - Loading strategy (`DatabendConnectionExtension.LoadMethod.STAGE` or `DatabendConnectionExtension.LoadMethod.STREAMING`)
Returns:
  Number of rows successfully loaded into the target table
Throws:
  `SQLException` - If the load operation fails (e.g., invalid SQL, stream errors, or data format issues)