mysql中Tinyint(1)和Tinyint(4)的区别

本文深入探讨了MySQL中Tinyint类型的使用技巧,特别是Tinyint(1)与Tinyint(4)的区别,及其在Java和C#中的映射。揭示了Tinyint(1)如何被误认为布尔类型,而Tinyint(4)则能存储更多数值,甚至在某些框架下转换为Sbyte类型。

在mysql中如果设置字段为Tinyint类型,补0为1的话,比如:Tinyint(1) 这个不管在数据库中保存1,2,3,4的时候。在java或者c#获取表的对象,转换成类对象的时候,会变成boolean /bool 值类型。

如果想要保存具体的数字那么就用Tinyint(4) 就可以保存数据。

在c#的有些框架,比如EF会把Tinyint(4)转换成Sbyte类型。其实长度也是-128到127

也就是网络上的一些网友提出的解决方案:

Tinyint(1)  就只用来保存 bool 值  只有0和1  不要保存其他的值

如果要保存多的值,就用 Tinyint(4) 这样的,那么到了Ef中这个 类型会变成  sbyte ,这个就是一个整形 .

这个是摘自官方的mysql关于tinyint的说法:

mysql关于tinyint的解释

如果你的数据库已经建立好了,并且 有很多的话。正好语言是java的话,可以在jdbc连接串上添加参数:

jdbc://mysql://127.0.0.1/数据库名?tinyInt1isBit=false

就可以了。如果数据库中的表不多的话可以直接把Tinyint(1)改成Tinyint(4).

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值