• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Problema con Java y mediumblob obtenido de MySQL

    Programado Fijo Cerrado Movido
    Software
    2
    4
    1.4k
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • N
      Niubi
      Última edición por

      Hola

      Estoy un poco desesperado con el problema que me ocurre, no se como concatenar un mediumblob y un varchar (8tring) desde java…

      Obtengo un varchar de una tabla de una base de datos y desde java lo trato como String, es decir, tengo el siguiente campo:

      campo1 –> varchar (100)
      campo1='Lv:0:39:http://www.w3.org/2001/XMLSchema#stringIf the author of an article is a person, then there: '

      Y lo que hago en java es tratarlo, dejandolo asi en un variable:
      String str1=If the author of an article is a person, then there

      Por otra parte tengo otro campo de la misma tabla que antes, pero de diferente tipo (mediumblob),

      campo2 –>mediumblob
      campo2='exists an editor, who is either this author or the editor responsible for this author. The section that contains this article is one of the sections managed by this editor.'

      ¿Que quiero? Pues quiero concatenar este campo2 a la variable str1 que tengo en mi programa java.

      Insertando el resultado en el campo x de otra tabla como mediumblob el siguiente valor:

      If the author of an article is a person, then there exists an editor, who is either this author or the editor responsible for this author. The section that contains this article is one of the sections managed by this editor.

      He intentado hacerlo, pero finalmente se me ha quedado el siguiente código (lo dejo por si acaso no anda mal encaminado)

      while (rs1.next())
                  {
                  	stmt = conexion2.prepareStatement
                      ("INSERT INTO comentarios VALUES (?,?)");
      
                  	//VAMOS OBTENIENDO LOS DATOS DE LAS COLUMNAS DE LA TABLA JENA_LONG_LIT
                  	int id=(Integer)rs1.getObject(1);
                  	String comentario1=(String)rs1.getObject(2);
                  	String st1=tc.TratarString(comentario1);
      
                  	Blob st2=rs1.getBlob(4);           	
      
                  	stmt.setInt(1,id);
                  	stmt.setString(2,st1.concat(st2));//Aquí es donde me pierdo porque no los puedo concatenar
      
                  	int retorno=stmt.executeUpdate();
                  }
      
      

      Espero que me haya explicado bien y que alguien me pueda echar una mano (si de la forma que había pensado en hacer está mal, decidme alguna alternativa)

      Muchas gracias delantadas.

      Saludos!

      1 Respuesta Última respuesta Responder Citar 0
      • IstarionI
        Istarion
        Última edición por

        @Niubi:

        Hola

        Estoy un poco desesperado con el problema que me ocurre, no se como concatenar un mediumblob y un varchar (8tring) desde java…

        Obtengo un varchar de una tabla de una base de datos y desde java lo trato como String, es decir, tengo el siguiente campo:

        campo1 –> varchar (100)
        campo1='Lv:0:39:XML Schema the author of an article is a person, then there: '

        Y lo que hago en java es tratarlo, dejandolo asi en un variable:
        String str1=If the author of an article is a person, then there

        Por otra parte tengo otro campo de la misma tabla que antes, pero de diferente tipo (mediumblob),

        campo2 –>mediumblob
        campo2='exists an editor, who is either this author or the editor responsible for this author. The section that contains this article is one of the sections managed by this editor.'

        ¿Que quiero? Pues quiero concatenar este campo2 a la variable str1 que tengo en mi programa java.

        Insertando el resultado en el campo x de otra tabla como mediumblob el siguiente valor:

        If the author of an article is a person, then there exists an editor, who is either this author or the editor responsible for this author. The section that contains this article is one of the sections managed by this editor.

        He intentado hacerlo, pero finalmente se me ha quedado el siguiente código (lo dejo por si acaso no anda mal encaminado)

        while (rs1.next())
                    {
                    	stmt = conexion2.prepareStatement
                        ("INSERT INTO comentarios VALUES (?,?)");
                    	
                    	//VAMOS OBTENIENDO LOS DATOS DE LAS COLUMNAS DE LA TABLA JENA_LONG_LIT
                    	int id=(Integer)rs1.getObject(1);
                    	String comentario1=(String)rs1.getObject(2);
                    	String st1=tc.TratarString(comentario1);
                    	
                    	Blob st2=rs1.getBlob(4);           	
                    	
                    	stmt.setInt(1,id);
                    	stmt.setString(2,st1.concat(st2));//Aquí es donde me pierdo porque no los puedo concatenar
             
                    	int retorno=stmt.executeUpdate();
                    }
        
        

        Espero que me haya explicado bien y que alguien me pueda echar una mano (si de la forma que había pensado en hacer está mal, decidme alguna alternativa)

        Muchas gracias delantadas.

        Saludos!

        La verdad, ni idea, hace mucho que no programo en Java y no he hecho conexiones a bases de datos (bueno a access en plan cutre para una practica, pero no me acuerdo de nada :risitas: ), asi que obviare esa parte 😛
        En cuanto a concatenar los distintos tipos, prueba a utilizar la funcion ToString() que tienen todos los objetos. Aunque la verdad que bastantes veces no va xD Pero bueno sino la cuestion es que debes convertir el blob a un string, prueba haciendo casting como haces con el string antes:
        1. Prueba con:
        st1 += st2.ToString()
        2. Y si no:
        st1 += (String)st2;

        Ya diras si eso funciona 😉
        P.D.: No se si es st1 += st2, o al reves xD

        Intel Xeon E3 1231v3 @ 3.4Ghz / 16GB DDR3 2133Mhz 11-11-11 / R290 PRO / Samsung 970 Evo 500GB / Samsung 840 250GB / 2xHDD / Netway 700w

        IstarionI 1 Respuesta Última respuesta Responder Citar 0
        • IstarionI
          Istarion @Istarion
          Última edición por

          Y mas facil:
          Sh*tmores: Convert java.sql.Blob to String

          ;D

          Intel Xeon E3 1231v3 @ 3.4Ghz / 16GB DDR3 2133Mhz 11-11-11 / R290 PRO / Samsung 970 Evo 500GB / Samsung 840 250GB / 2xHDD / Netway 700w

          N 1 Respuesta Última respuesta Responder Citar 0
          • N
            Niubi @Istarion
            Última edición por

            @Istarion:

            Y mas facil:
            Sh*tmores: Convert java.sql.Blob to String

            ;D

            Oztia! ke weno, jijiji

            pues bueno dejaré el código como sería…

                            byte[] bdata;
                 		int id=0;
                 		String comen1=new String();
                 		String st1 =new String();
                 		Blob st2=null;
                 		String text=new String();
            
                        while (rs1.next())
                        {            	
                        	stmt = pConexion2.prepareStatement
                            ("INSERT INTO comentarios_ontologia VALUES (?,?,?)");
            
                        	//VAMOS OBTENIENDO LOS DATOS DE LAS COLUMNAS DE LA TABLA JENA_LONG_LIT
                        	id=(Integer)rs1.getObject(1);
                        	comen1=(String)rs1.getObject(2);
                        	st1=tc.TratarString(comen1);
                        	st2=rs1.getBlob(4);    
            
                        	bdata = st2.getBytes(1, (int) st2.length());
                        	text = new String(bdata);
                        	bdata=st1.concat(text).getBytes();
            
                        	stmt.setInt(1,id);
                        	stmt.setBytes(3, bdata); //En vez de utilzar el metodo setBlob, utilizamos este
            
                        	stmt.executeUpdate();
                        }
            

            Saludos!

            1 Respuesta Última respuesta Responder Citar 0
            • 1 / 1
            • First post
              Last post

            Foreros conectados [Conectados hoy]

            1 usuarios activos (0 miembros e 1 invitados).
            febesin, pAtO,

            Estadísticas de Hardlimit

            Los hardlimitianos han creado un total de 543.3k posts en 62.8k hilos.
            Somos un total de 34.8k miembros registrados.
            safemedsuk ha sido nuestro último fichaje.