在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的说法:
如果你的数据库已经建立好了,并且 有很多的话。正好语言是java的话,可以在jdbc连接串上添加参数:
jdbc://mysql://127.0.0.1/数据库名?tinyInt1isBit=false
就可以了。如果数据库中的表不多的话可以直接把Tinyint(1)改成Tinyint(4).