我将boolean插入mysql中bit类型,读出来是false和true,但是用false查询用,是空的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我将boolean插入mysql中bit类型,读出来是false和true,但是用false查询用,是空的相关的知识,希望对你有一定的参考价值。

读出来没有转化,直接显示false,但是以false为条件查询则查不出来任何东西

boolean 只有true 和 false 而bit在数据库里存的是1和0,页面上是因为从数据库读取到程序的时候,已经把bit转成boolean了,而用sql语句查询,还是在数据库里查的,肯定要用bit支持的1和0才行咯追问

可是我把bit设为64位了,0和1查不出来 navicat for mysql显示的false是0000000000000000000000000110011001100001011011000111001101100101

追答

你的查询语句是怎么写的,你把false当成字符串写成2进制了~那肯定害死那串东西啊

追问

那有什么办法不改动数据库就能查询呢?

追答

不用改动数据库啊,我是想看看你查询的语句是怎么写的~

追问

sql="select * from novel where IsFinished=0"; 查不出来,怎么改

追答

select * from novel where IsFinished='0' 试试加个单引号

参考技术A mysql5.0以后,bit存储的是二进制,设置为1位就是1和0,就是true和false,如果设置大于1位,那就是二进制方式存储 参考技术B 读取bit类型的时候一定要注意转换成数字或者字符串类型,否则会在不同操作系统下得到不同的结果 参考技术C 查询条件使用0和1追问

可是读出来我没转化它就显示false和true,难道页面显示的时候把0和1自己自动转化了

追答

粘贴你的建表表脚本和显示程序,应该没有这么神奇的。

追问

不是,我是把false插入到了长度为64的bit型中,结果是0000000000000000000000000110011001100001011011000111001101100101 这个
在程序中直接取值就成了false了

追答

粘贴你的程序,可能有误会。

追问

能不能把你的QQ给我啊?

Spring+Jpa插入boolean属性出现异常问题

问你个问题:
就是根据entity bean自动生成表时,若bean中有个boolean属性的字段,映射在表中的类型为bit 长度为1,当我插入boolean属性的值时,它为什么报java.sql.BatchUpdateException: Data too long for column 'visible' at row 1这个异常啊.
数据库为MySql.

我汗...插入的boolean值又不是0或者1,你把长度设置为1当然出问题了... 参考技术A 不需要设置长度,直接是bit就可以了。

以上是关于我将boolean插入mysql中bit类型,读出来是false和true,但是用false查询用,是空的的主要内容,如果未能解决你的问题,请参考以下文章

MySql - 在多列中存储多个boolean时使用哪种列类型?

MySQL JDBC 中 tinyint 处理为Boolean 的代码逻辑

mysql中boolean类型的奇妙转化

mysql中boolean类型的奇妙转化

mysql有布尔类型吗?

哪位高手来解决一下:java中short类型数据如何转换成boolean类型???