Opis
Łańcuch znaków o długości do 2 147 483 647 znaków, czyli 2684 obrazków o wymiarach 1000×800 pixeli.
Składnia
BLOB(liczba znaków Unicode)
albo
BINARY LARGE OBJECT(liczba znaków Unicode)
Liczba znaków może być podana jako:

  • 12235 – liczba znaków
  • 12K – 12*1024 znaków
  • 2M – 2*1024*1024 znaków
  • 1G – 1*1024*1024*1024 znaków
  • bez podanej wartości – domyślnie 2G = 2 147 483 647 znaków

Odpowiadający typ Java
java.sql.Blob
Odpowiadający typ JDBC
java.sql.Types.BLOB
Przykład
Przykład w klasie R052:

        DerbyUtil.startDerbyEngine(DerbyUtil.embdriver);
        Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true");
        Statement stat = null;
        ResultSet rs;
        try {
            stat = con.createStatement();
            stat.execute(createTableObrazki);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        DerbyUtil.imagesToDerby(con, "aderby/src/resources/karty", ".jpg");
        String nazwa;
        Blob bl = null;
        File file;
        InputStream is = null;
        FileOutputStream fos = null;
        try {
            rs = Objects.requireNonNull(stat).executeQuery("SELECT * FROM obrazki WHERE nazwa='AW2.jpg'");
            while (rs.next()) {
                nazwa = rs.getString("nazwa");
                bl = rs.getBlob("obrazek");
                file = new File("C:/Przyklady/" + nazwa);
                is = bl.getBinaryStream();
                try {
                    fos = new FileOutputStream(file);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
                DerbyUtil.copyStream2(is, fos);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (bl != null) {
                try {
                    bl.free();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        DerbyUtil.close(is);
        DerbyUtil.close(fos);
        DerbyUtil.close(stat);
        DerbyUtil.close(con);
        DerbyUtil.shutdownEmbeddedDB(baza);
        DerbyUtil.shutdownDerbyEngine();

Po uruchomieniu klasy w folderze C:/Przyklady pojawi się baza danych zawierająca 10 obrazków w postaci obiektów BLOB oraz plik obrazka AW2.jpg, który został z bazy pobrany jako obiekt BLOB, a następnie zapisany do pliku.

Pliki do ściągnięcia

Plik r052.zip (klasa + skrypt)
Dodatkowy plik MultiFilter.zip
Aktualny (tworzony narastająco) plik module-info.java
Aktualny (tworzony narastająco) plik DerbyUtil.java
Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszyskich wpisach w projekcie. W przypadku pliku module-info.java może być potrzebne skreślenie niepotrzebnych wpisów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *