前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >MySQL 表字段数据类型与 Java 类型对应关系

MySQL 表字段数据类型与 Java 类型对应关系

原创
作者头像
Yeats_Liao
发布2025-01-13 20:52:36
发布2025-01-13 20:52:36
1820
举报

本文主要介绍了 MySQL 中的各种数据类型以及在 Java 中的对应类型。包括整数类型、浮点数类型、字符串类型、日期和时间类型以及其他类型。每种类型都详细说明了其特点、存储范围以及在 Java 中的对应处理方式。

一、整数类型

  1. TINYINT
    • MySQL 中,TINYINT 占 1 字节,有符号范围 - 128 到 127,无符号 0 到 255。若用于存储布尔值(0 或 1),Java 中可用 boolean 类型接收;若存储一般小范围整数值,有符号时对应 byte,无符号或范围稍大时可考虑 short
  2. SMALLINT
    • 占 2 字节,有符号范围 - 32768 到 32767。Java 中通常对应 short 类型,能很好地处理该范围内的整数数据。
  3. MEDIUMINT
    • 占 3 字节,有符号范围 - 8388608 到 8388607。由于其范围在 Java 的 int 类型范围内,所以对应 int 类型,方便数据的转换与操作。
  4. INT/INTEGER
    • 占 4 字节,有符号范围 - 2147483648 到 2147483647。这是 MySQL 中常用整数类型,在 Java 中对应 int 类型,在数据交互中广泛应用。
  5. BIGINT
    • 占 8 字节,有符号范围 - 9223372036854775808 到 9223372036854775807。对应的 Java 类型是 long,用于处理较大范围的整数值,如数据库中存储的大型编号或计数等数据。

二、浮点数类型

  1. FLOAT
    • MySQL 中的单精度浮点数,占 4 字节,用于存储近似十进制数值。在 Java 中对应 float 类型。但因浮点数精度问题,在计算和比较时可能出现误差,使用时需谨慎。
  2. DOUBLE
    • 双精度浮点数,占 8 字节,精度高于 FLOAT。Java 中对应 double 类型,同样要注意精度相关问题,适用于对精度要求稍高的浮点数存储与计算场景。

三、字符串类型

  1. CHAR
    • MySQL 的定长字符串类型,如 CHAR(10) 固定存储 10 个字符,不足则用空格填充。Java 中用 String 类型接收,读取时需用 trim() 方法去除可能的填充空格,常用于存储长度固定的字符串数据,如身份证号固定位数部分等。
  2. VARCHAR
    • 变长字符串类型,如 VARCHAR(20) 最多存 20 字符,实际按字符串实际长度存储。在 Java 中对应 String 类型,灵活性高,适合存储长度不确定的字符串,如用户名、文章标题等。
  3. TEXT
    • 用于存储较长文本,有 TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT 等,存储长度各异。Java 中也用 String 类型处理,但处理大 TEXT 数据时要考虑性能与内存占用,常用于存储文章内容、备注等长文本信息。

四、日期和时间类型

  1. DATE
    • MySQL 中存储日期,格式 'YYYY - MM - DD'。Java 中用 java.sql.Date 类型接收与处理,在数据读取与转换时,需注意与 Java 中日期处理方式的衔接,常用于存储生日、创建日期等仅涉及日期的数据。
  2. TIME
    • 存储时间,格式 'HH:MM:SS'。对应 Java 中的 java.sql.Time 类型,方便处理时间相关数据,如记录事件发生的时间点等。
  3. DATETIME
    • 存储日期和时间,格式 'YYYY - MM - DD HH:MM:SS'。在 Java 中通常使用 java.sql.Timestamp 类型,它是 java.util.Date 的子类,能精确到纳秒,适用于需要精确记录日期和时间的场景,如交易时间、系统日志时间等。
  4. TIMESTAMP
    • 范围从 '1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC。同样在 Java 中用 java.sql.Timestamp 类型处理,常用于记录数据的插入或更新时间等时间戳信息。

五、其他类型

  1. BLOB
    • 用于存储二进制数据,有 TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB 等不同大小类型。在 Java 中用 byte[] 数组接收与处理,通过输入输出流进行二进制数据的读写操作,可用于存储图像、音频、视频等文件的二进制内容。
  2. ENUM
    • MySQL 的枚举类型,如 ENUM('male','female') 定义值集合。Java 中可先用 String 类型接收,但更好的做法是定义一个枚举类(enum)与之对应,以增强数据约束与验证,常用于存储有限个固定值的字段,如性别、状态等。
  3. SET
    • 允许存储一个或多个预定义值集合中的成员,如 SET('reading','writing','drawing')。Java 中可用 String 类型接收,处理时需解析字符串获取成员。也可自定义 Java 类,如用 List<String>Set<String> 等集合类型更好地处理数据,适用于存储具有多个可选值的字段,如用户的兴趣爱好等。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、整数类型
  • 二、浮点数类型
  • 三、字符串类型
  • 四、日期和时间类型
  • 五、其他类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档