在Java中,读取character类型的表字段时返回类型为什么是byte?
问题现象
新建一个数据库表,某个表字段使用character类型,在Java中读取character类型的字段时返回类型为什么是byte?
例如,创建如下所示的表:
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类型接收。