mysql bit 转换,JDBC,MySQL:将位转换为BIT(M!= 1)列

I'm new to using JDBC + MySQL.

I have several 1/0 values which I want to stick into a database with a PreparedStatement. The destination column is a BIT(M!=1). I'm unclear on which of the setXXX methods to use. I can find the references for what data comes out as easily enough, but how it goes in is eluding me.

The values effectively live as an ordered collection of booleans in the objects used by the application. Also, I'll occasionally be importing data from flat text files with 1/0 characters.

解决方案

To set a BIT(M) column in MySQL

For M==1

setBoolean(int parameterIndex, boolean x)

From the javadoc

Sets the designated parameter to the

given Java boolean value. The driver

converts this to an SQL BIT value when

it sends it to the database.

For M>1

The support for BIT(M) where M!=1 is problematic with JDBC as BIT(M) is only required with "full" SQL-92 and only few DBs support that.

The following works for me with MySQL (at least with MySQL 5.0.45, Java 1.6 and MySQL Connector/J 5.0.8)

...

PreparedStatement insert = con.prepareStatement(

"INSERT INTO bittable (bitcolumn) values (b?)"

);

insert.setString(1,"111000");

...

This uses the special b'110101010' syntax of MySQL to set the value for BIT columns.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值