Translate

martes, 4 de julio de 2017

MySql tinyInt1isBit = false

Hoy una entrada rápida que puede salvar más de un problema una vez que tenemos nuestra base de datos ya definida o simplemente la hemos heredado de otra persona o proveedor.

Que ocurre si tenemos definido un campo en una tabla MySQL como tinyint, este es un campo que se usa para almacenar datos de 8bits es decir valores de 0 a 255.

Pero normalmente se utiliza para valor es boolean tipo true false. En mi caso hoy hemos tenido un problema porque tenemos una columna definida con este tipo de datos y en la tabla tenemos valores 0, 1, 2, etc.... El problema ha surgido porque el driver de mysql php ha traducido el valor correctamente pero el de java no lo ha hecho.

El driver de php traduce correctamente el valor 2, pero en Java nos devuelve el valor true. 

Curioseando por la web hemos visto que si en los parámetros de conexión de MySQL añadimos la siguiente cadena de conexión en la conexión java tinyInt1isBit=false el valor será interpretado correctamente como un 2.

Esto a más de uno le puede salvar de más de un problema.