Insertar imagenes a SQL con JAVA

roqueagv
10 de Enero del 2004
Hola:
Quisiera saber si alguien me puede ayudar con este problemita. Tengo que insertar imagenes en una BD de SQL y luego mostrar las que estan insertadas.
Le he dado mil vueltas y no me sale, alguien me podria ayudar???

Saludos

Jander
10 de Enero del 2004
Lo que dices no es trivial.
Un apunte:
Las imagenes deberias guardarlas como objetos BLOB, guardando los bytes de la imagen y luego recuperandolos.
Para leerlos, es como siempre.
Te mando un ejemplo de como escribir un blob:
private void escribirBlobactualizarXmlopt(byte[] data) {

// Se obtiene la conexión contra la base de datos utilizando el pool
java.sql.Connection cn = getConnection();
if(cn == null)
return;

Statement st = null;
ResultSet rs = null;
try {
cn.setAutoCommit(false);
st = cn.createStatement();
st.execute("update TABLA SET CAMPO=empty_blob() where ...");
st.execute("commit");
rs = st.executeQuery("SELECT CAMPO FROM TABLA WHERE ... FOR UPDATE");
java.sql.Blob myBlob = null;
java.io.DataOutputStream dos = null;

if(rs.next()) {
myBlob = rs.getBlob(1);
java.io.OutputStream os = myBlob.getBinaryOutputStream();
os.write(data);
os.close();
} else {
System.out.println ("Error...");
}

rs.close();
st.close();
cn.close();

rs = null;
st = null;
cn = null;
}
catch (Exception exception) {
exception.printStackTrace();
System.err.println(exception.getMessage());
}
finally
{
if (rs!=null) try{rs.close();}catch(Exception e){}
if (st!=null) try{st.close();}catch(Exception e){}
if (cn!=null) try{cn.close();}catch(Exception e){}
}
}