Para definir um
BIT(M) coluna no MySQL Para
M==1 setBoolean(int parameterIndex, boolean x)
Do javadoc
Para
M>1 O suporte para
BIT(M) onde M!=1 é problemático com JDBC como BIT(M) só é necessário com SQL-92 "completo" e apenas alguns bancos de dados suportam isso. Verifique aqui Mapeando SQL e tipos de Java:8.3 .3 BIT
O seguinte funciona para mim com MySQL (pelo menos com MySQL 5.0.45, Java 1.6 e MySQL Connector/J 5.0.8)
...
PreparedStatement insert = con.prepareStatement(
"INSERT INTO bittable (bitcolumn) values (b?)"
);
insert.setString(1,"111000");
...
Isso usa a sintaxe especial b'110101010' do MySQL para definir o valor das colunas BIT.