Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como salvar arquivos PDF gerados no banco de dados MySQL usando Java?

  1. O tipo de dados que você pode usar é BLOB .

  2. Converta o arquivo PDF e persista o byte[] matriz no banco de dados.
    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 inseri-lo no banco de dados Se você estiver usando alguma ferramenta ORM, basta mapear a coluna como blob e a ferramenta cuidará disso para você. Caso você não esteja usando, você pode criar uma declaração preparada. A instrução tem um método chamado setBlob() que será útil. Considere o exemplo abaixo e crie uma consulta de inserção normal com a coluna 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();