std.database.sql 包
功能介绍
database.sql 包提供仓颉访问数据库的接口。
本包提供 SQL/CLI 的通用接口,配合数据库驱动 Driver 完成对数据库的各项操作。
注意:
当前仅支持 SQL/CLI 接口。
SQL 数据类型和仓颉数据类型对应表如下:
SQL | CDBC/Cangjie | SqlDataType | 说明 |
---|---|---|---|
RUNE | String | SqlChar | - |
VARCHAR | String | SqlVarchar | - |
CLOB | io.InputStream | SqlClob | - |
BINARY | Array<Byte> | SqlBinary | - |
VARBINARY | Array<Byte> | SqlVarBinary | - |
BLOB | io.InputStream | SqlBlob | - |
NUMERIC | Decimal | sqlDecimal | - |
DECIMAL | Decimal | sqlDecimal | - |
BOOLEAN | Bool | SqlBool | - |
TINYINT | Int8 | SqlByte | - |
SMALLINT | Int16 | SqlSmallInt | - |
INTEGER | Int32 | SqlInteger | - |
BIGINT | Int64 | SqlBigInt | - |
REAL | Float32 | SqlReal | - |
DOUBLE | Float64 | SqlDouble | - |
DATE | time.DateTime | SqlDate | 值支持 YEAR ,MONTH ,DAY 。 |
TIME | time.DateTime | SqlTime | 值支持 HOUR ,MINUTE ,SECOND (不包括 TIME ZONE )。 |
TIMETZ | time.DateTime | SqlTimeTz | 值支持 HOUR ,MINUTE ,SECOND (包括 TIME ZONE )。 |
TIMESTAMP | time.DateTime | SqlTimestamp | 值支持 YEAR ,MONTH ,DAY ,HOUR ,MINUTE ,SECOND ,TIME ZONE 。 |
INTERVAL | time.Duration | SqlInterval | 年-月间隔或者日-时间隔。 |
API列表
接口
接口名 | 功能 |
---|---|
ColumnInfo | 执行 Select/Query 语句返回结果的列信息。 |
Connection | 数据库连接接口。 |
Datasource | 数据源接口。 |
Driver | 数据库驱动接口。 |
QueryResult | 执行 Select 语句产生的结果接口。 |
SqlDbType | 所有 sql 数据类型的父类。 |
SqlNullableDbType | 允许 null 值的 sql 数据类型父类。 |
Statement | sql 语句预执行接口。 |
Transaction | 定义数据库事务的核心行为。 |
UpdateResult | 执行 Insert、Update、Delete 语句产生的结果接口。 |
类
类名 | 功能 |
---|---|
DriverManager | 支持运行时根据驱动名获取数据库驱动实例。 |
PooledDatasource | 数据库连接池类,提供数据库连接池能力。 |
SqlOption | 预定义的 sql 选项名称和值。 |
SqlBigInt | 大整数,对应仓颉 Int64 类型。 |
SqlBinary | 定长二进制字符串,对应仓颉 Array<Byte> 类型。 |
SqlBlob | 变长超大二进制字符串(BINARY LARGE OBJECT),对应仓颉 InputStream 类型。 |
SqlBool | 布尔类型,对应仓颉 Bool 类型。 |
SqlByte | 字节,对应仓颉 Int8 类型。 |
SqlChar | 定长字符串,对应仓颉 String 类型。 |
SqlClob | 变长超大字符串(RUNE LARGE OBJECT),对应仓颉 InputStream 类型。 |
SqlDate | 日期,仅年月日有效,对应仓颉 DateTime 类型。 |
SqlDecimal | 高精度数,对应仓颉 Decimal 类型。 |
SqlDouble | 双精度数,对应仓颉 Float64 类型。 |
SqlInteger | 中整数,对应仓颉 Int32 类型。 |
SqlInterval | 时间间隔,对应仓颉 Duration 类型。 |
SqlReal | 浮点数,对应仓颉 Float32 类型。 |
SqlSmallInt | 小整数,对应仓颉 Int16 类型。 |
SqlTime | 时间,仅时分秒毫秒有效,对应仓颉 DateTime 类型。 |
SqlTimestamp | 时间戳,对应仓颉 DateTime 类型。 |
SqlTimeTz | 带时区的时间,仅时分秒毫秒时区有效,对应仓颉 DateTime 类型。 |
SqlVarBinary | 变长二进制字符串,对应仓颉 Array<Byte> 类型。 |
SqlVarchar | 变长字符串,对应仓颉 String 类型。 |
SqlNullableBigInt | 大整数,对应仓颉 Int64 类型,可为数据库 Null 值。 |
SqlNullableBinary | 定长二进制字符串,对应仓颉 Array<Byte> 类型,可为数据库 Null 值。 |
SqlNullableBlob | 变长超大二进制字符串(BINARY LARGE OBJECT),对应仓颉 InputStream 类型,可为数据库 Null 值。 |
SqlNullableBool | 布尔类型,对应仓颉 Bool 类型,可为数据库 Null 值。 |
SqlNullableByte | 字节,对应仓颉 Int8 类型,可为数据库 Null 值。 |
SqlNullableChar | 定长二进制字符串,对应仓颉 String 类型,可为数据库 Null 值。 |
SqlNullableClob | 变长超大字符串(RUNE LARGE OBJECT),对应仓颉 InputStream 类型,可为数据库 Null 值。 |
SqlNullableDate | 日期,仅年月日有效,对应仓颉 DateTime 类型,可为数据库 Null 值。 |
SqlNullableDecimal | 高精度数,对应仓颉 Decimal 类型,可为数据库 Null 值。 |
SqlNullableDouble | 双精度数,对应仓颉 Float64 类型,可为数据库 Null 值。 |
SqlNullableInteger | 中整数,对应仓颉 Int32 类型,可为数据库 Null 值。 |
SqlNullableInterval | 时间间隔,对应仓颉 Duration 类型,可为数据库 Null 值。 |
SqlNullableReal | 浮点数,对应仓颉 Float32 类型,可为数据库 Null 值。 |
SqlNullableSmallInt | 小整数,对应仓颉 Int16 类型,可为数据库 Null 值。 |
SqlNullableTime | 时间,仅时分秒毫秒有效,对应仓颉 DateTime 类型,可为数据库 Null 值。 |
SqlNullableTimestamp | 时间戳,对应仓颉 DateTime 类型,可为数据库 Null 值。 |
SqlNullableTimeTz | 带时区的时间,仅时分秒毫秒时区有效,对应仓颉 DateTime 类型,可为数据库 Null 值。 |
SqlNullableVarBinary | 变长二进制字符串,对应仓颉 Array<Byte> 类型,可为数据库 Null 值。 |
SqlNullableVarchar | 变长字符串,对应仓颉 String 类型,可为数据库 Null 值。 |
枚举
枚举名 | 功能 |
---|---|
ConnectionState | 描述与数据源连接的当前状态。 |
TransactionAccessMode | 事务读写模式。 |
TransactionDeferrableMode | 事务的延迟模式。 |
TransactionIsoLevel | 定义了数据库系统中,一个事务中操作的结果在何时以何种方式对其他并发事务操作可见。 |
异常类
异常类名 | 功能 |
---|---|
SqlException | 用于处理 sql 相关的异常。 |