tinyint数据库类型

1. tinyint(1) 映射为 Boolean 类型

在 MySQL 中,tinyint(1) 常用于表示布尔值 0/1。为了便于处理,Java 类可以将其映射为 Boolean 类型,这样数据库值 0 会对应 false1 对应 true。这种映射在布尔状态的数据库字段中非常常见,比如标记删除状态的 deleted 字段:

java 复制代码
// 数据库字段
@Column("deleted")
private Boolean deleted;

此时,我们可以使用 truefalse 赋值:

java 复制代码
// 赋值为已删除
deleted = true;

// 赋值为未删除
deleted = false;

在 ORM 框架(例如 MyBatis、Hibernate 等)中,一般会自动完成数据库 0/1 与 Java false/true 的转换,使得数据存取更直观。

2. tinyint 类型作为数值映射为 Integer 类型

在一些业务场景中,tinyint 用作数值字段。为了兼容 MySQL 中 tinyint 的取值范围(-128 到 127),建议映射为 Java 的 Integer 类型,避免值超出范围引起的数据转换错误。

tinyint 超出 tinyint(1)(如 tinyint(2)tinyint(3)),或者表示其他数值含义时,使用 Integer 更符合实际需求。比如,status 字段表示状态码(0、1、2...):

java 复制代码
@Column("status")
private Integer status;

赋值时可以直接使用整数值:

java 复制代码
// 设置状态为激活
status = 1;

// 设置状态为禁用
status = 0;

这种数值映射适用于需要表达更广泛数值范围的 tinyint 字段,使得操作更灵活。

注意事项

在使用 tinyint 映射 BooleanInteger 时,确保使用的 ORM 框架或数据库驱动支持该映射规则。MyBatis、Hibernate 等框架一般都能处理这些类型转换,但在配置映射文件或注解时要特别注意字段类型,以确保数据一致性。

相关推荐
齊家治國平天下3 小时前
Android 14 Vehicle HAL (VHAL) 设计与实现深度解析
android·aaos·carservice·车载开发·android 14·vhal·vehicle hal
AFinalStone9 小时前
Android 7系统网络(八)应用API层—ConnectivityManager使用与实战调试
android·网络
plainGeekDev10 小时前
kapt 替换为 KSP
android·java·kotlin
蜡台10 小时前
通过Gradle脚本声明更改Java变量
android·java·开发语言·python·kotlin·gradle·groovy
阿pin13 小时前
Android随笔-SharedPreferences
android·sp
阿pin14 小时前
Android随笔-DataStore
android·datastore
茶栀(*´I`*)15 小时前
Android 测试入门指南:ADB 基础配置与常用设备管理命令解析
android·adb
ihuyigui16 小时前
海外酒店预订短信接口
android·java·运维·服务器·前端·后端·架构
gxgldyh17 小时前
Android Framework源码解析(七):BootAnimation 启动流程解析——开机动画是如何显示出来的?
android
达达尼昂17 小时前
在 Claude Cowork 中用好 Claude Fable 5
android·人工智能·后端