sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo guardar archivos PDF generados en la base de datos MySQL usando Java?

  1. El tipo de datos que puede usar es BLOB .
  2. Convierta el archivo PDF y conserve el byte[] matriz en la base de datos.

    private byte[] getByteArrayFromFile(final Document handledDocument) throws IOException {
        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
        final InputStream in = new FileInputStream(handledDocument);
        final byte[] buffer = new byte[500];
    
        int read = -1;
        while ((read = in.read(buffer)) > 0) {
            baos.write(buffer, 0, read);
        }
        in.close();
    
        return baos.toByteArray();
    }
    
  3. Para insertarlo en la base de datos Si está utilizando alguna herramienta ORM, solo tiene que asignar la columna como blob y la herramienta lo manejará por usted. En caso de que no lo esté utilizando, puede crear una declaración preparada. La declaración tiene un método llamado setBlob() que será útil. Considere el siguiente ejemplo y cree una consulta de inserción normal con una columna de blob.

    String sql = "INSERT INTO testtable(stringcolumn, blobcolumn) VALUES(?,?)";
    
    PreparedStatement statement = conn.getConnection().prepareStatement(sql);
    statement.setLong(1, version);
    ByteArrayInputStream bais = new ByteArrayInputStream(getByteArrayFromFile(document));
    statement.setBlob(2, bais);          
    statement.execute();
    
    conn.commit();