PGSQL数据类型和Java类型映射关系

PostgreSQL 数据类型与 Java 类型的映射关系,通常由 JDBC 驱动(如 PostgreSQL 官方的 postgresql JDBC driver)定义,不同框架(如 JPA、MyBatis)可能会在此基础上做一些封装,但核心映射规则一致。以下是常见的映射关系:

1. 数值类型

PostgreSQL 类型说明Java 类型(JDBC 映射)备注
smallint2 字节整数(-32768~32767)shortIntegerJDBC 通常返回 Short,可自动装箱为 Integer
integer4 字节整数(-2^31~2^31-1)intInteger最常用,直接映射为 Integer
bigint8 字节整数(-2^63~2^63-1)longLong映射为 Long
numeric(p,s)/decimal精确小数(自定义精度和小数位)java.math.BigDecimal必须用 BigDecimal 保证精度,避免丢失
real4 字节单精度浮点数floatFloat精度较低(约 6-7 位有效数字)
double precisionfloat88 字节双精度浮点数doubleDouble精度较高(约 15-17 位有效数字)
serial/bigserial自增整数(隐式主键)int/Integerlong/Long本质是 integer/bigint + 自增序列

2. 字符串与字符类型

PostgreSQL 类型说明Java 类型(JDBC 映射)备注
char(n)固定长度字符串(不足补空格)String读取时会包含尾部空格,需注意处理
varchar(n)可变长度字符串(最大 n)String最常用,直接映射为 String
text无长度限制的长文本String适合存储大文本(如文章、日志)

3. 日期与时间类型

PostgreSQL 类型说明Java 类型(JDBC 映射)备注
date日期(年 - 月 - 日)java.sql.Date仅包含日期,无时间部分
time时间(时:分: 秒)java.sql.Time仅包含时间,无日期部分
timestamp日期 + 时间(无时区)java.sql.Timestamp对应 java.time.LocalDateTime(Java 8+)
timestamp with time zonetimestamptz带时区的日期时间java.sql.Timestamp对应 java.time.OffsetDateTime(Java 8+),JDBC 会转换为本地时区
interval时间间隔(如 1 day 2 hours)java.sql.Date 或自定义处理较少直接映射,通常用字符串或自定义类处理

4. 布尔类型

PostgreSQL 类型说明Java 类型(JDBC 映射)备注
boolean布尔值(true/false)booleanBoolean直接映射为 Boolean

5. 二进制与大对象类型

PostgreSQL 类型说明Java 类型(JDBC 映射)备注
bytea二进制数据(字节数组)byte[]适合存储小二进制数据(如图片缩略图)
blob二进制大对象(PostgreSQL 中通常用 bytea 替代)java.sql.Blob较少使用,推荐用 bytea + byte[]
clob字符大对象(PostgreSQL 中通常用 text 替代)java.sql.Clob推荐用 text + String 更简洁

6. 特殊类型

PostgreSQL 类型说明Java 类型(JDBC 映射)备注
array数组(如 int[]varchar[]java.sql.Array 或具体数组类型需通过 Array.getArray() 转换为 Java 数组(如 int[]String[]
json/jsonbJSON 数据String 或自定义 JSON 对象通常先读为 String,再用 Jackson 等工具转为 Java 对象
uuid通用唯一标识符java.util.UUIDJDBC 可直接映射
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值