文档首页/ 数据仓库服务 GaussDB(DWS)/ 故障排除/ 数据库使用/ 在Java中,读取character类型的表字段时返回类型为什么是byte?
更新时间:2024-07-01 GMT+08:00

在Java中,读取character类型的表字段时返回类型为什么是byte?

问题现象

数据库中新建一张表,某个表字段使用character类型,在Java中读取character类型的字段时返回类型是byte。

例如,创建示例表table01:

1
2
3
4
CREATE TABLE IF NOT EXISTS table01(
   msg_id character(36),
   msg character varying(50)
);

在Java中,读取character类型的字段代码如下:

1
ColumnMetaInfo(msg_id,1,Byte,true,false,1,true);

原因分析

  • CHARACTER(n)是定长字符串类型,当实际字符串长度不够时数据库会用空格补全,Java用byte类型接收。
  • CHARACTER VARYING(n)是变长字符串类型,Java使用String类型接收。