Mysql
 sql >> Datenbank >  >> RDS >> Mysql

JDBC, MySQL:Bits in eine BIT(M!=1)-Spalte bekommen

Zum Setzen eines BIT(M) Spalte in MySQL

Für M==1

setBoolean(int parameterIndex, boolean x)

Aus dem Javadoc

Für M>1

Die Unterstützung für BIT(M) wobei M!=1 ist problematisch mit JDBC als BIT(M) wird nur mit "vollem" SQL-92 benötigt und nur wenige DBs unterstützen das.

Überprüfen Sie hier Mapping von SQL- und Java-Typen:8.3 .3 BIT

Folgendes funktioniert bei mir mit MySQL (zumindest mit MySQL 5.0.45, Java 1.6 und MySQL Connector/J 5.0.8)

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

Dies verwendet die spezielle b'110101010'-Syntax von MySQL, um den Wert für BIT-Spalten festzulegen.