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

Hvordan gemmer man genererede PDF-filer til MySQL-database ved hjælp af Java?

  1. Datatype, som du kan bruge, er BLOB .
  2. Konverter PDF-filen, og bevar byte[] array i databasen.

    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. For at indsætte det i DB Hvis du bruger ORM-værktøjer, skal du blot kortlægge kolonnen som en klat, og værktøjet vil håndtere det for dig. Hvis du ikke bruger det, kan du oprette en forberedt erklæring. Statement har en metode kaldet setBlob(), som vil være nyttig. Overvej nedenstående eksempel og opret en normal indsættelsesforespørgsel med blob-kolonne.

    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();
    



  1. Hvordan importerer man en mysql-dump, mens man omdøber nogle tabeller/kolonner og slet ikke importerer andre?

  2. Kræver MySQL InnoDB altid et indeks for hver fremmednøglebegrænsning?

  3. Sådan får du den aktuelle dato i MySQL

  4. hvordan samles to kolonner til én med det eksisterende kolonnenavn i mysql?