我是使用JDBC + MySQL的新手。
我有几个1/0值,我希望将它们放在带有PreparedStatement的数据库中。目标列是BIT(M!= 1)。我不清楚使用哪种setXXX方法。我可以很容易地找到数据出来的参考资料,但它是如何进行的却是我的想法。
这些值有效地作为应用程序使用的对象中有序的布尔集合。另外,我偶尔会从1/0字符的平面文本文件中导入数据。
答案 0 :(得分:2)
您可以将get / setObject与字节数组(byte [])一起使用。每个字节打包8位,最低有效位在最后一个数组元素中。
答案 1 :(得分:2)
在MySQL中设置BIT(M)
列
M==1
setBoolean(int parameterIndex, boolean x)
来自javadoc
将指定参数设置为 给定Java布尔值。司机 将此转换为SQL BIT值 它将它发送到数据库。
M>1
支持BIT(M)
M!=1
只有BIT(M)
的问题只需要“完整”的SQL-92,只有少数DB支持。{/ p>
点击此处Mapping SQL and Java Types: 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列的值。