# 所有程序包的分层结构

程序包分层结构:

- com.databend.jdbc,
- com.databend.jdbc.annotation,
- com.databend.jdbc.cloud,
- com.databend.jdbc.exception,
- com.databend.jdbc.parser

## 类分层结构

- java.lang.Object
  - com.databend.jdbc.parser.BatchInsertUtils
  - com.databend.jdbc.ConnectionProperties
  - com.databend.jdbc.DatabendColumnInfo
  - com.databend.jdbc.DatabendConnection (implements java.sql.Connection, com.databend.jdbc.FileTransferAPI)
  - com.databend.jdbc.cloud.DatabendCopyParams
  - com.databend.jdbc.cloud.DatabendCopyParams.Builder
  - com.databend.jdbc.DatabendDatabaseMetaData (implements java.sql.DatabaseMetaData)
  - com.databend.jdbc.DatabendDriverUri
  - com.databend.jdbc.cloud.DatabendPresignClientV1 (implements com.databend.jdbc.cloud.DatabendPresignClient)
  - com.databend.jdbc.DatabendResultSet
  - com.databend.jdbc.DatabendResultSetMetaData (implements java.sql.ResultSetMetaData)
  - com.databend.jdbc.cloud.DatabendStage
  - com.databend.jdbc.cloud.DatabendStage.Builder
  - com.databend.jdbc.DatabendStatement (implements java.sql.Statement)
    - com.databend.jdbc.DatabendPreparedStatement (implements java.sql.PreparedStatement)
  - com.databend.jdbc.cloud.ExternalLocationS3
  - com.databend.jdbc.cloud.ExternalLocationS3.Builder
  - com.databend.jdbc.NonRegisteringDatabendDriver (implements java.io.Closeable, java.sql.Driver)
    - com.databend.jdbc.DatabendDriver
  - com.databend.jdbc.PresignContext
  - com.databend.jdbc.PresignContext.Builder
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - java.lang.UnsupportedOperationException
          - com.databend.jdbc.exception.DatabendUnsupportedOperationException

## 接口分层结构

- com.databend.jdbc.cloud.DatabendPresignClient
- com.databend.jdbc.FileTransferAPI

## 注释类型分层结构

- com.databend.jdbc.annotation.NotImplemented (implements java.lang.annotation.Annotation)

## 枚举分层结构

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
    - com.databend.jdbc.DatabendColumnInfo.Nullable
    - com.databend.jdbc.cloud.DatabendCopyParams.DatabendParams