O BLOB é só pra colocar arquivos. Você nunca vai conseguir colocar os bytes que estão na memória direto no banco, pois vc não tem acesso a esses dados.
Pra conseguir fazer isso, vc pode tentar:
Serialize esse objeto num arquivo e depois o grave nesse campo BLOB.
Para recuperar o valor do BLOB, recupere os bytes, grave num arquivo e depois deserialize pra ter seu Map de volta.
Nunca tentei fazer isso, mas eu acredito que pode funcionar.
ccefetpb
Resolvido
A solução se extende para qualquer tipo de objeto.
publicstaticbyte[]serialize(Objectobj)throwsIOException{ByteArrayOutputStreamout=newByteArrayOutputStream();ObjectOutputStreamos=newObjectOutputStream(out);os.writeObject(obj);returnout.toByteArray();}publicstaticObjectdeserialize(byte[]data)throwsIOException,ClassNotFoundException{ByteArrayInputStreamin=newByteArrayInputStream(data);ObjectInputStreamis=newObjectInputStream(in);returnis.readObject();}//para salvarsql="INSERT INTO time_map (id_user, map) VALUES (?, ?)";ps=connection.prepareStatement(sql);byte[]byteVal=serialize(follower.getTimeMap().getMap());ps.setLong(1,idFollower);ps.setBytes(2,byteVal);ps.execute();//para recuperarsql="SELECT map FROM time_map WHERE id_user = ?";PreparedStatementps=connection.prepareStatement(sql);ps.setLong(1,idUser);ResultSetrs=ps.executeQuery();TimeMapmapa=null;if(rs.next()){byte[]byteVal=rs.getBytes("map");Integer[]map=(Integer[])deserialize(byteVal);mapa=newTimeMap();mapa.setMap(map);}