Mysql
 sql >> Database >  >> RDS >> Mysql

Come salvare i file PDF generati nel database MySQL utilizzando Java?

  1. Il tipo di dati che puoi utilizzare è BLOB .
  2. Converti il ​​file PDF e mantieni il byte[] matrice nel database.

    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. Per inserirlo nel DB Se stai utilizzando uno strumento ORM devi solo mappare la colonna come blob e lo strumento lo gestirà per te. Nel caso in cui non lo utilizzi, puoi creare una dichiarazione preparata. L'istruzione ha un metodo chiamato setBlob() che sarà utile. Considera l'esempio seguente e crea una normale query di inserimento con la colonna 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();