我目前有一个MySQL数据库设置,Java客户端访问和使用数据库。我需要数据库中的布尔数据类型来确定数据库的各个用户是否允许某些操作。由于没有布尔数据类型,您可以在MySQL中使用的布尔值的最佳实现是什么?
我知道TinyInt
可以与PreparedStatement
setByte(int parameterIndex, byte x
一起使用,我也知道Bit
也可以与setBoolean(int parameterIndex, boolean x)
一起使用。以下哪一项是布尔值的更好解决方案?如果有更好的解决方案,它会是什么?
答案 0 :(得分:6)
Boolean
是TINYINT(1)
的同义词;如果位数足够小,Bit
也是如此。从MySQL操作的角度来看,你使用它几乎没有什么区别。你说“更好”是什么意思?
答案 1 :(得分:1)
您似乎假设您无法使用JDBC的BOOL
来解决MySQL的setBoolean
- 您可以。因此,最佳选择是将列声明为BOOL
并使用setBoolean
。即使MySQL将您的声明别名为TINYINT
,您的SQL也会声明您要使用的内容,而您的Java代码也会在该级别上显而易见。