我是使用JDBC + MySQL的新手。

我有几个1/0值,我希望将它们放在带有PreparedStatement的数据库中。目标列是BIT(M!= 1)。我不清楚使用哪种setXXX方法。我可以很容易地找到数据出来的参考资料,但它是如何进行的却是我的想法。

这些值有效地作为应用程序使用的对象中有序的布尔集合。另外,我偶尔会从1/0字符的平面文本文件中导入数据。

有帮助吗?

解决方案

在MySQL中设置 BIT(M)

M == 1

setBoolean(int parameterIndex, boolean x)

来自javadoc

  

将指定参数设置为   给定Java布尔值。司机   将此转换为SQL BIT值   它将它发送到数据库。


M> 1

支持 BIT(M),其中 M!= 1 对于JDBC是有问题的,因为 BIT(M)只需要& ;全" SQL-92只有少数DB支持。

点击此处映射SQL和Java类型:8.3.3 BIT

以下适用于MySQL(至少使用MySQL 5.0.45,Java 1.6和MySQL Connector / J 5.0.8)

...
PreparedStatement insert = con.prepareStatement(
    "INSERT INTO bittable (bitcolumn) values (b?)"
);
insert.setString(1,"111000");
...

这使用MySQL的特殊b'110101010'语法来设置BIT列的值。

其他提示

您可以将get / setObject与字节数组(byte [])一起使用。每个字节打包8位,最低有效位在最后一个数组元素中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top