MySQL 数据类型与 Java 类型映射全解析

本文详细解析 MySQL 数据类型与 Java 类型的对应关系,涵盖数值、日期、字符串、二进制等所有类型

一、为什么需要了解类型映射?

在数据库应用开发中,数据类型映射是 ORM 框架、JDBC 操作和 API 设计的基础核心。正确的类型映射能:

  1. 避免数据精度丢失(如浮点数)
  2. 防止字符编码问题(中文乱码)
  3. 优化存储空间(选择合适的数据类型)
  4. 提升查询性能(减少隐式类型转换

二、数值类型映射

MySQL 类型范围/特点Java 类型注意事项
TINYINT-128127 / 0255Byte/Integer自动装箱类型更常用
SMALLINT-32768~32767Short/Integer
MEDIUMINT-8388608~8388607Integer较少使用
INT/INTEGER-2³¹~2³¹-1Integer最常用整型
BIGINT-2⁶³~2⁶³-1Long主键、大数量场景
FLOAT(M,D)单精度浮点数Float精度问题:0.1+0.2 != 0.3
DOUBLE(M,D)双精度浮点数Double同上
DECIMAL(M,D)精确小数(M:总位数,D:小数位)BigDecimal金融计算必用,避免精度丢失
BIT(M)位字段(1~64位)byte[]/BooleanJDBC 驱动可能返回 Boolean(M=1) 或 byte[](M>1)

三、日期时间类型映射

MySQL 类型格式Java 类型推荐方案
DATE'YYYY-MM-DD'java.sql.Date使用 LocalDate (Java 8+)
TIME'HH:MM:SS'java.sql.Time使用 LocalTime (Java 8+)
DATETIME'YYYY-MM-DD HH:MM:SS'java.sql.Timestamp使用 LocalDateTime (Java 8+)
TIMESTAMP时间戳(1970-2038)java.sql.Timestamp注意时区问题
YEAR'YYYY'java.sql.Date/Integer直接使用 Integer 更简单

 

四、字符串类型

4.1 基础字符串类型

MySQL 类型最大长度Java 类型字符集建议
CHAR(M)255字符String定长存储(空格填充)
VARCHAR(M)65,535字节String最常用,按需分配空间
TINYTEXT255字节String短文本

4.2 TEXT 系列类型详解

MySQL 类型最大长度Java 类型使用场景
TEXT65,535字节String文章内容、产品描述
MEDIUMTEXT16MBString电子书章节、长文档
LONGTEXT4GBString大型XML/JSON、小说全文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值