理解误区——mysql中tinyint与Java的数据类型的对应关系;tinyint(1) 与tinyint(4)的区别

理解误区1

   在最初学习Java和MySQL的时,一直使用的是Boolean来接受tinyint类型的数据。具体操作:在数据库中设置TINYINT(1),存储0和1;在Java中使用boolean来接受,0代表false,1代表true。在潜意识中一直以为MySQL的tinyint对应Java的Boolean,其实这个是错误的。
   直到后来使用tinyint存不是0和1的数之后,才考虑到Java应该用什么类型接收,才明白之前的那个“潜意识”是错误的。

tinyint用java的什么类型来接收?

tinyint 可以使用int来接受也可以用boolean来接受。

因为数据库并没有boolean这个类型,所以可以使用tinyint来代替,0代表false,1代表true。

理解误区2

   之前总是使用TINYINT(1)来存储0和1的数据,“(1)”虽是显示长度,但是总感觉可以节省空间。其实这是错误的,是和varchar弄混淆了

tinyint(1) 与tinyint(4)的区别?

tinyint默认的位数是4位,但是我们设计数据库就算设计成tinyint(1),也不能影响它占了4个存储空间。

tinyint(1) 和 tinyint(4)中的1和4只有字段指定zerofill是有用,用0来填充,而且需要去指定zerofill才行。

其实他们的存储空间是一样的。
如tinyint(4),如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充。

你可能感兴趣的:(Java基础,mysql)