MySQL数据库中tinyint类型字段对应JAVA的boolean类型,true和false

发布时间:2023年12月26日

前言:?
? ? ?有时候,在Mysql数据库中,建立表中列的字段时候,明确知道这个列字段,只会存在0或者1,那么就可以使用tinyint类型,如果取出来的话,0会变成false,1会变成true。

注意:
? ? 1. MySQL保存boolean值时用1代表TRUE,0代表FALSE。boolean在MySQL里的类型为tinyint(1)。MySQL里有四个常量:true,false,TRUE,FALSE分别代表1,0,1,0。

? ? ?2. 场景:

  ? ? ? ?字段:status (值为1,2,3)

  ? ? ? ?类型:tinyint ?长度:1(有符号的)

  ? ? ? ?结果:查询出来的数据列表,状态值不管是1还是2还是3,都是"boolean true"

? ? ? ? ?分析并解决:

  ? ? ? ?分析:由于MySql中没有boolean类型,所以会用到tinyint[1]类型来表示,在mysql中boolean=tinyint[1]

  ? ? ? ?解决:tinyint类型长度的问题,当我把长度改成4时,查询结果就正常了
? ? ? ? ?新思路:
? ? ? ? ? ? ? ?在不改变类型长度下,修改查询sql语句,在你需要执行的sql语句中,把这个状态字段*1,结果就会得到数据库存的值了(注意:记得加别名,不然查询出来的就是status*1 => '1')
?

最后总结:

 1.修改tinyint类型的长度

 2.在查询的sql语句上面做修改
?

? ? ? ? 所以由这里可以看出,当你使用tinyint[1]来存储超过0,1两个值以外的值,比如存储2,那这个2就是脏数据就用tinyint[4],tinyint[1]只适用于存储0和1两个值,也即真和假,true和false

  一般的,咱们如果存的是纯数字的话,建议用tinyint,如果是字符串,且是固定长度的,建议用char,而enum的枚举字段,使用的使用需要慎重考虑,避免带来不必要的麻烦
?

文章来源:https://blog.csdn.net/LiZhen314/article/details/135214569
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。