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 相关的异常。 |