首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Java 與 MySQL 數據類型映射對照表:JDBC 開發必備速查手冊

     編輯:MySQL 綜合教學

核心類型映射表

MySQL 類型顯示長度Java 類型JDBC Type (int)備註
VARCHARL+Njava.lang.String12 (VARCHAR)最常用字符串
CHARNjava.lang.String1 (CHAR)定長,自動填充空格
TEXT65535java.lang.String-1 (LONGVARCHAR)大文本,避免 SELECT *
BLOBL+Nbyte[]-4 (BLOB)二進制數據,圖片/文件
TINYINT3Integer-6 (TINYINT)-128~127
TINYINT UNSIGNED3Integer-60~255,常用作 Boolean
SMALLINT5Integer5 (SMALLINT)-32768~32767
MEDIUMINT8Integer4 (INTEGER)-8388608~8388607
INT / INTEGER10Integer / Long4 (INTEGER)主鍵首選 Long
BIGINT20Long / BigInteger-5 (BIGINT)大整數、雪花 ID
FLOAT4+8Float7 (REAL)單精度,避免金額計算
DOUBLE22Double8 (DOUBLE)雙精度,科學計算
DECIMAL11BigDecimal3 (DECIMAL)精確計算,金額必用
BIT1Boolean-7 (BIT)MySQL 8.0+ 推薦 BOOLEAN 別名
DATE10java.sql.Date91 (DATE)年月日
TIME8java.sql.Time92 (TIME)時分秒
DATETIME19java.sql.Timestamp93 (TIMESTAMP)無時區,5.6+ 支持微秒
TIMESTAMP19java.sql.Timestamp93UTC 存儲,時區感知
YEAR4java.sql.Date911901~2155

特殊類型處理建議

BLOB / 圖片存儲

  • Java 對應 byte[],JDBC setBytes()/getBytes()。
  • 大文件建議存對象存儲(S3/MinIO),DB 只存 URL + 元數據。

Boolean 選型

  • MySQL 無原生 Boolean,BOOLEAN 實為 TINYINT(1)。
  • Java 用 Integer (0/1) 或 Boolean,MyBatis/JPA 自動映射。
  • 避免用 BIT(1),JDBC 驅動行為不一,易發生 ClassCastException。

時間類型時區陷阱

  • DATETIME:不存時區,應用層統一用 UTC 寫入,讀取後按業務時區展示。
  • TIMESTAMP:存儲 UTC,讀取自動轉換為會話時區(time_zone 變量)。跨時區應用首選。
  • JDBC URL 加 serverTimezone=UTC 統一協調。

MyBatis / JPA 映射提示

-- MyBatis resultMap


-- JPA Entity
@Column(name = "amount", precision = 19, scale = 4)
private BigDecimal amount;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved