Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment enregistrer les fichiers PDF générés dans la base de données MySQL à l'aide de Java ?

  1. Le type de données que vous pouvez utiliser est BLOB .
  2. Convertir le fichier PDF et conserver le byte[] tableau dans la base de données.

    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. Pour l'insérer dans la base de données Si vous utilisez des outils ORM, il vous suffit de mapper la colonne en tant que blob et l'outil le gérera pour vous. Si vous ne l'utilisez pas, vous pouvez créer une déclaration préparée. Statement a une méthode appelée setBlob() qui sera utile. Considérez l'exemple ci-dessous et créez une requête d'insertion normale avec une colonne 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();