JDBC,MySQL的:(!M = 1),得到位转换成BIT列(JDBC, MySQL: getti

2019-08-31 06:26发布

我是新来使用JDBC + MySQL的。

我有我要坚持与一个PreparedStatement数据库数1/0值。 目标列是一个BIT(M!= 1)。 我不清楚其上的setXXX方法来使用。 我能找到什么数据出来那样容易够引用,但它是如何去中躲避我。

该值有效地住在应用程序所使用的对象布尔值的有序集合。 另外,我偶尔会从平面文本文件与1/0字符导入数据。

Answer 1:

要设置BIT(M)在MySQL柱

对于M==1

setBoolean(int parameterIndex, boolean x)

根据JavaDoc

将指定参数设置为给定Java boolean值。 该驱动器将其转换为当它发送到数据库的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,爪哇1.6和MySQL连接器/ J 5.0.8)

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

本品采用特殊b'110101010' 的MySQL的语法来设置BIT列的值。



Answer 2:

您可以使用GET /的setObject用一个字节数组(byte [])。 8位被装入与过去数组元素中的至少显著位为每个字节。



文章来源: JDBC, MySQL: getting bits into a BIT(M!=1) column