| MySQL 数据类型 | Java 类型(建议)| MyBatis JDBC Type | 备注 / 说明 |
|----------------------|--------------------------|-------------------|----------------------------------------------------------------------------------------|
| TINYINT(1) | `Boolean` | `BIT` | 常用于存储布尔值 (0 / 1),MySQL 中 TINYINT(1) 通常被视为布尔字段。|
| TINYINT | `Byte` | `TINYINT` | 范围:-128 ~ 127;如果只是布尔值建议使用 TINYINT(1) + `Boolean`。|
| SMALLINT | `Short` | `SMALLINT` | 范围:-32768 ~ 32767;在 Java 里不常见,可视需求使用 `Integer` 也可。|
| INT / INTEGER | `Integer` | `INTEGER` | 常用整型,范围:-2^31 ~ 2^31-1。|
| BIGINT | `Long` | `BIGINT` | 范围:-2^63 ~ 2^63-1,用于更大范围整数,如自增 ID、订单号等。|
| FLOAT | `Float` | `FLOAT` | 可能存在浮点精度问题,若对数值精度要求高,一般使用 `BigDecimal` + DECIMAL。|
| DOUBLE | `Double` | `DOUBLE` | 同样存在浮点精度问题,金融类数据更推荐使用 DECIMAL。|
| DECIMAL(p, s) | `BigDecimal` | `DECIMAL` | 常用于货币、金融等高精度场景,需在实体中配合 `BigDecimal` 进行精确运算。|
| CHAR(n)/VARCHAR(n) | `String` | `CHAR` / `VARCHAR`| 常见字符串类型,注意长度限制。如果长度较大,使用 TEXT 系列。|
| TEXT / LONGTEXT | `String` | `LONGVARCHAR` | 大文本字段(如文章、描述等),不同版本也可能用 `CLOB`。|
| DATE | `LocalDate` (Java 8+) | `DATE` | 仅存储"年月日"信息,不包含具体时分秒。|
| DATETIME / TIMESTAMP| `LocalDateTime` (Java 8+)| `TIMESTAMP` | 存储"年月日时分秒"信息,也可用 `java.sql.Timestamp` / `java.util.Date`,推荐使用新时间类。|
| TIME | `LocalTime` (Java 8+) | `TIME` | 存储"时分秒"信息。|
| YEAR | `Integer` / `Short` | `YEAR` | 存储年份,范围 1901~2155,或 1970~2069,实际使用不多;也可考虑 `LocalDate`。|
| BINARY / VARBINARY | `byte[]` | `BINARY` / `VARBINARY` | 小二进制数据,如哈希、固定长度的二进制字段。|
| BLOB / LONGBLOB | `byte[]` | `BLOB` | 大的二进制对象,如图片、文件;注意存储和传输成本。|
| JSON | `String` / 复杂映射 | `VARCHAR` / `OTHER` 等 | MySQL 原生 JSON 类型可直接存 JSON 字符串,或使用 MyBatis TypeHandler 做定制映射。|