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 等框架一般都能处理这些类型转换,但在配置映射文件或注解时要特别注意字段类型,以确保数据一致性。

相关推荐
甜瓜看代码29 分钟前
SystemUI 启动与组成机制
android·源码·源码阅读
黄林晴2 小时前
Kotlin 2.4.0 正式稳定!Android 升级、Compose、KMP 全变化详解
android·kotlin
恋猫de小郭3 小时前
Android 官方给 Compose 搞了个不需要 UI 环境的 Composable
android·前端·flutter
珊瑚里的鱼4 小时前
C++的强制类型转换
android·开发语言·c++
问心无愧05134 小时前
ctf show web入门102
android·java·前端·笔记
Kapaseker5 小时前
Kotlin 相等的奥义
android·kotlin
Lyyaoo.5 小时前
【MySQL】锁机制
android·数据库·mysql
DS随心转插件5 小时前
DeepSeek 代码手机端导出与 AI 辅助方案实测
android·人工智能·chatgpt·智能手机·deepseek·ai导出鸭
JohnnyDeng946 小时前
【Android】Flow vs LiveData:选型指南与迁移实践
android·kotlin·livedata·flow
plainGeekDev6 小时前
线程安全集合 → 协程安全替代
android·java·kotlin