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

MyBatis jdbcType 與 javaType 映射對照表:標準類型轉換速查手冊

     編輯:Java 綜合教學

標準映射表 (JDBC 4.2 / MyBatis 3.4+)

JDBC Type (java.sql.Types)Java Type備註
CHARString定長字符串
VARCHARString變長字符串,最常用
LONGVARCHARString大文本,建議用 CLOB
NUMERICjava.math.BigDecimal精確數值,金融必用
DECIMALjava.math.BigDecimal同 NUMERIC
BITboolean單位元,MySQL TINYINT(1) 常映射此
BOOLEANboolean標準布爾
TINYINTbyte-128~127
SMALLINTshort-32768~32767
INTEGERint標準 32 位整數
BIGINTlong64 位長整數
REALfloat單精度浮點
FLOATdoubleJDBC FLOAT 映射 Java double
DOUBLEdouble雙精度浮點
BINARYbyte[]定長二進制
VARBINARYbyte[]變長二進制
LONGVARBINARYbyte[]大二進制,建議用 BLOB
DATEjava.sql.Date僅日期部分
TIMEjava.sql.Time僅時間部分
TIMESTAMPjava.sql.Timestamp日期時間,納秒精度
CLOBjava.sql.Clob字符大對象
BLOBjava.sql.Blob二進制大對象
ARRAYjava.sql.Array數組類型
DISTINCTunderlying type用戶定義類型
STRUCTjava.sql.Struct結構體
REFjava.sql.Ref引用類型
DATALINKjava.net.URL外部數據鏈接
ROWIDjava.sql.RowId行標識符 (JDBC 4.0+)
SQLXMLjava.sql.SQLXMLXML 數據 (JDBC 4.0+)
NCHAR / NVARCHAR / NLONGVARCHARString國際化字符類型 (JDBC 4.0+)
NCLOBjava.sql.NClob國際化 CLOB (JDBC 4.0+)

MyBatis 映射實戰要點

  1. resultMap 顯式指定:<result column="amt" property="amount" jdbcType="DECIMAL" javaType="java.math.BigDecimal"/>
  2. insert/update 指定 jdbcType:<insert> INSERT INTO t (amt) VALUES (#{amount,jdbcType=DECIMAL}) </insert>,防止 NULL 值推斷失敗。
  3. 類型處理器:自定義 TypeHandler 處理枚舉、JSR310 時間類型、JSON 列等非標準映射。
  4. 全局配置:configuration.mapUnderscoreToCamelCase=true 自動駝峰映射,jdbcTypeForNull=OTHER 兜底策略。

常見坑位

  • MySQL BIT(1) → JDBC 返回 BIT,Java 推薦 Boolean,需顯式 jdbcType=BIT。
  • Oracle NUMBER 無精度標度 → JDBC 返回 NUMERIC,映射 BigDecimal 最安全。
  • PostgreSQL UUID → JDBC OTHER,需自定義 TypeHandler 映射 java.util.UUID。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved