Pergunta

Estou usando o JDBC + MySQL.

Eu tenho vários 1/0 valores que eu quero ficar em um banco de dados com um PreparedStatement.A coluna de destino é um POUCO(M!=1).Eu estou confusa sobre qual dos métodos setXXX usar.Eu posso encontrar as referências para os dados que vem de fora, como facilmente o suficiente, mas como ele vai está escapando de mim.

Os valores efectivamente viver como um conjunto ordenado de booleanos em objetos usados pelo aplicativo.Além disso, eu vou ser ocasionalmente a importação de dados a partir de arquivos de texto planos com 1/0 caracteres.

Foi útil?

Solução

Para definir um BIT(M) coluna no MySQL

Para M==1

setBoolean(int parameterIndex, boolean x)

A partir do javadoc

Define o parâmetro designado para o dado Java valor booleano.O driver o converte para um BIT do SQL valor quando ele envia-lo para o banco de dados.


Para M>1

O suporte para BIT(M) onde M!=1 é problemático com JDBC como BIT(M) é necessário apenas com "full" SQL-92 e apenas alguns DBs suporte.

Confira aqui Mapeamento de SQL e Java Tipos:8.3.3 BITS

A seguir funciona para mim com MySQL (pelo menos com o 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");
...

Este usa o especial b "110101010' sintaxe do MySQL para definir o valor para colunas de BITS.

Outras dicas

Você pode usar get/setObject com uma matriz de bytes (byte[]).8 bits são embalados em cada byte com o bit menos significativo, sendo o último elemento da matriz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top