我刚开始使用JDBC + MySQL。
我有几个1/0值,我想把它们放到一个带有PreparedStatement的数据库中。目标列是位(M!=1)。我不清楚该使用哪种setXXX方法。我可以很容易地找到数据的参考资料,但我不知道它是如何进入的。
这些值实际上是应用程序使用的对象中布尔值的有序集合。另外,我偶尔会从具有1/0字符的纯文本文件中导入数据。
发布于 2009-10-22 01:59:24
在MySQL中设置BIT(M)列
对于M==1
setBoolean(int parameterIndex, boolean x)从javadoc
将指定的参数设置为给定的Java Boolean值。驱动程序在将其发送到数据库时将其转换为SQL位值。
对于M>1
只有“完整的”BIT(M) -92才需要对M!=1有问题的BIT(M)的支持,而且只有很少的DB支持。
检查此处Mapping SQL and Java Types: 8.3.3 BIT
下面的代码适用于MySQL (至少适用于MySQL 5.0.45、Java1.6和MySQL连接器/J 5.0.8)
...
PreparedStatement insert = con.prepareStatement(
"INSERT INTO bittable (bitcolumn) values (b?)"
);
insert.setString(1,"111000");
...它使用MySQL的特殊b'110101010‘语法来设置位列的值。
发布于 2009-10-22 00:24:52
可以将get/setObject与字节数组(byte[])一起使用。8位被打包到每个字节中,其中最低有效位在最后一个数组元素中。
https://stackoverflow.com/questions/1601838
复制相似问题