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