首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDBC,MySQL:将位放入位(M!=1)列

JDBC,MySQL:将位放入位(M!=1)列
EN

Stack Overflow用户
提问于 2009-10-22 00:01:01
回答 2查看 6K关注 0票数 1

我刚开始使用JDBC + MySQL。

我有几个1/0值,我想把它们放到一个带有PreparedStatement的数据库中。目标列是位(M!=1)。我不清楚该使用哪种setXXX方法。我可以很容易地找到数据的参考资料,但我不知道它是如何进入的。

这些值实际上是应用程序使用的对象中布尔值的有序集合。另外,我偶尔会从具有1/0字符的纯文本文件中导入数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-22 01:59:24

在MySQL中设置BIT(M)

对于M==1

代码语言:javascript
复制
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)

代码语言:javascript
复制
...
PreparedStatement insert = con.prepareStatement(
    "INSERT INTO bittable (bitcolumn) values (b?)"
);
insert.setString(1,"111000");
...

它使用MySQL的特殊b'110101010‘语法来设置位列的值。

票数 3
EN

Stack Overflow用户

发布于 2009-10-22 00:24:52

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1601838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档