Trabajando con mysql y java me ha salido que el tipo de dato es byte, y me he quedado bien wtf!, ya que según yo era String, pero bueno he encontrado la solución rapidamente.
Para transformar un byte[] a String esta bien sencillo solo haz lo siguiente:
[cc lang=»java»]
//Tu variable tipo byte[]
byte[] misBytes = new byte[10];
//.. asignar valores a misBytes
//convertir a string
String miString = new String(misBytes);
[/cc]
como sucedio:
- Cree una vista en mysql la cual contenia un campo concatenado
[cc lang=»sql»]create view ‘vista’ as (select concat(tabla.campo1, tabla.campo2) as campo3 from tabla); [/cc] - cree la consulta desde desde java
[cc lang=»java»] String sql = «Select campo3 from vista»; [/cc] - la consulta me regreso un ResultSet y lo recorri
[cc lang=»java»] ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
String campo3 = rs.getString(«campo3»); //segun yo era string
} [/cc] - Me marco una excepcion de casting de datos y me quede wtf que
coñoes B
[cc lang=»java»] B cannot be cast to java.lang.String [/cc] - Para estar seguro que significaba la B(desconocia su significado) hice lo siguiente: [cc lang=»java»]Object obj = rs.getObject(«campo3»);
System.out.Println(obj.getClass.getCannonicalName); //asi me da el nombre de la clase[/cc] - y el resultado fue byte[], luego investigue por que byte[] segun decia que el tipo de dato concat es VARBINARY entonces para convertir un arreglo de bytes a String haces lo siguiente:
[cc lang=»java»]
byte[] obj = rs.getBytes(«campo3);
/*donde obj es nuestro arreglo de byte[] la clase String tiene un constructor que recibe de parametro un arreglo de bytes y hace la conversion.
si recorres el arreglo de bytes veras que son puros numeros, esos numeros son su codigo ascii.
*/
[/cc][cc lang=»java»]
byte[] myBytes = rs.getBytes(«campo3);
String campo3 = new String(myBytes);
[/cc] - Listo ya convertiste byte[] a String 😛
espero que a alguien le sea de utilidadd como me lo fue a mi 🙂
Fuentes a las que acudi:
mysql
convert by to String
Fede
diciembre 1, 2012 at 11:09 ammaldito google -.-