返回首页

gbase数据、南大通用产品文档:GBase8sResultSetgetXXX() 方法的数据类型映射

更新日期:2024年09月11日

使用 ResultSet.getXXX() 方法将数据从使用 JDBC API 连接的 GBase 8s 数据库传输到
Java™ 程序。例如,使用 ResultSet.getString() 方法获取 LVARCHAR 数据类型列中存储的
信息。
重要:
如果您在 SQL 语句中使用表达式
(例如,
SELECT mytype::LVARCHAR FROM mytab)

您可能不能使用 ResultSet.getXXX(columnName) 检索值。请改为使用
ResultSet.getXXX(columnIndex) 来检索该值。
如果检索的列值是 SQL 空值,则 getXXX() 方法返回空值。
本节中的表列出了 GBase 8s JDBC Driver 支持的非扩展数据类型和 GBase 8s 扩展数据类型
的 ResultSet.getXXX() 方法。
非扩展数据类型
下表列出了 GBase 8s JDBC Driver 支持的非扩展数据类型的 ResultSet.getXXX() 方法。
首先
列出了 java.sql.Types 类中定义的标准 JDBC API 数据类型。它们会转换为特定的 GBase
8s 数据类型,如在扩展类型和 Java 和 JDBC 类型之间映射数据类型中的表所示。该表列
出了可用于检索特定的 JDBC API 数据类型的数据的 getXXX() 方法。
大写和粗体 X 表示推荐与 GBase 8s JDBC Driver 一起使用的 getXXX() 方法;小写 x 表
示 GBase 8s JDBC Driver 支持的其它 getXXX() 方法。
数值型 JDBC API 数据类型
表 1. 来自 java.sql.Types 的数值型 JDBC API 数据类型
getXXX() 方法
TINYINT
SMALLINT
INTEGER
BIGINT
getByte()
X
x
x
x
getShort()
x
X
x
x
getInt()
x
x
X
x
getLong()
x
x
x
X
getFloat()
x
x
x
x
getDouble()
x
x
x
x
getBigDecimal()
x
x
x
x
getBoolean()
x
x
x
x
getString()
x
x
x
x

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 280
-
getXXX() 方法
TINYINT
SMALLINT
INTEGER
BIGINT
getObject()
x
x
x
x
表 2. 数值型 JDBC API 数据类型 (续)
getXXX() 方法
REAL
FLOAT
DOUBLE
DECIMAL
NUMERIC
getByte()
x
x
x
x
x
getShort()
x
x
x
x
x
getInt()
x
x
x
x
x
getLong()
x
x
x
x
x
getFloat()
X
x
x
x
x
getDouble()
x
X
X
x
x
getBigDecimal()
x
x
x
X
X
getBoolean()
x
x
x
x
x
getString()
x
x
x
x
x
getObject()
x
x
x
x
x

字符型和时间型 JDBC API 数据类型
表 3. 来自 java.sql.Types 的字符型和时间型 JDBC API 数据类型
getXXX() 方法
CHAR
VARCHAR
LONGVARCHAR
BINARY
getByte()
x1
x1


getShort()
x1
x1


getInt()
x1
x1


getLong()
x1
x1


getFloat()
x1
x1


getDouble()
x1
x1


getBigDecimal()
x
x



GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 281
-
getXXX() 方法
CHAR
VARCHAR
LONGVARCHAR
BINARY
getBoolean()
x
x


getString()
X
X
x
x
getBytes()


x
X
getDate()
x
x


getTime()
x
x


getTimestamp()
x
x


getAsciiStream()


X
x
getCharacterStream()


X
x
getBinaryStream()


x
x
getObject()
x
x
x2
x
注:
1. 列值必须精确符合 getXXX() 类型,否则会发出 SQLException。如果列值不在允许
的范围内,则 setXXX() 方法发出异常并不会转换数据。例如,如果列值是 1000,
则 getByte(1) 会引发 SQLException。
2.
返回一个字节数组。
表 4. 来自 java.sql.Types 的字符型和时间型 JDBC API 数据类型(续)
getXXX() 方法
VARBINARY
LONGVARBINARY
DATE TIME
TIMESTAMP
getString()
x
x
x
x
x
getBytes()
X
x



getDate()


X

x
getTime()



X
x
getTimestamp()


x

X
getAsciiStream()
x
x



getCharacterStream(
x
x




GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 282
-
getXXX() 方法
VARBINARY
LONGVARBINARY
DATE TIME
TIMESTAMP
)
getBinaryStream()
x
X



getObject()
x
x1
x
x2
x
注:
1.
返回一个字节数组。
2.
返回一个 Timestamp 对象而不是 Time 对象。
GBase 8s 扩展数据类型
下表列出了 GBase 8s JDBC Driver 支持的 GBase 8s 扩展数据类型
的 PreparedStatement.getXXX() 方法,
其之间的映射在表在扩展类型和 Java 和 JDBC 类型
之间映射数据类型中展示。该表列出了您可以用于检索的特定扩展数据类型的数据
的 getXXX() 方法。
大写并加粗的 X 表示推荐使用的 getXXX() 方法;
小写的 x 表示 GBase 8s JDBC Driver 支持
的其它 getXXX() 方法。
该表不包含您不能使用的GBase 8s 扩展数据类型的 getXXX() 方法。

表 1. GBase 8s 扩展数据类型
getXXX() 方法
BOOLEAN
LVARCHAR
Opaque
类型
BLOB
CLOB
BYTE
getByte()
x
x




getShort()
x





getInt()
x





getBoolean()
X





getString()

X


x

getBytes()



x

x
getAsciiStream()

x


x

getCharacterStream()

x


x

getBinaryStream()
x


x

X
getObject()
x
x
X
x
x
x

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 283
-
getXXX() 方法
BOOLEAN
LVARCHAR
Opaque
类型
BLOB
CLOB
BYTE
getBlob()



X


getClob()




X

表 2. GBase 8s 扩展的数据类型(续)
getXXX() 方法
TEXT
NAMED ROW UNNAMED ROW
SET 或
MULTISET
LIST
getString()
x




getBytes()





getAsciiStream()
X




getCharacterStream()
X




getBinaryStream()





getObject()
x
X
X
x
x
getArray()



x
x
getBlob()





getClob()





函数说明
以“YYYY-MM-DD HH:MI:SS”或“YYYYMMDDHHMISS”格式返回当前的日
期时间值,返回的格式取决于该函数是用于字符串还是数字上下文中。
示例
示例1:使用SYSDATE()函数返回当前的“日期+时间”。
gbase> SELECT SYSDATE() FROM dual;
+---------------------+
| SYSDATE()
|
+---------------------+
| 2020-04-01 18:41:36 |
+---------------------+
1 row in set

取值:[0|1]
默认值:1
说明:查询语句在主节点执行失败时是否允许重试。
0---不使用,1---使用,默认为1。
1-如果允许重试,首先在主节点重新执行,执行次数由
gcluster_node_exec_retry_times 指定,
主节点无法执行成功,
使用备份节点采取
和主节点一致的策略进行重试查询。
修改方式:可使用set 语句修改值也可在配置文件中修改值。适用于global 范围。