1. Buat tabel:
Copy kode kodenya sebagai berikut:
letakkan tabel jika ada foto;
BUAT foto TABEL (
id INT BUKAN NULL AUTO_INCREMENT KUNCI UTAMA,
nama VARCHAR(100) KOMENTAR 'nama',
gumpalan foto KOMENTAR 'foto'
)
MESIN=InnoDB
SET KARAKTER DEFAULT=utf8
COLLATE=utf8_general_ci;
Format penyimpanan data gambar di MySql bertipe blob; Blob merupakan container yang dapat menyimpan file biner.
2. Tulis kelas alat untuk akses data aliran gambar:
Copy kode kodenya sebagai berikut:
impor java.io.File;
impor java.io.FileInputStream;
impor java.io.FileNotFoundException;
impor java.io.FileOutputStream;
impor java.io.IOException;
impor java.io.InputStream;
kelas publik ImageUtil {
file File statis pribadi = null;
/**
* Baca aliran biner gambar dari file lokal
*
* @param masuk
* @kembali
*/
FileInputStream statis publik getImageByte(String infile) {
FileInputStream imageByte = nol;
file = File baru(infile);
mencoba {
imageByte = FileInputStream baru(file);
} tangkapan (FileNotFoundException e) {
e.printStackTrace();
}
kembalikan imageByte;
}
/**
* Baca aliran gambar sebagai gambar
*
* @param inputStream
* jalur @param
*/
public static void readBlob(InputStream inputStream, jalur String) {
mencoba {
FileOutputStream fileOutputStream = FileOutputStream baru(jalur);
byte[] penyangga = byte baru[1024];
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, len);
}
inputStream.close();
fileOutputStream.close();
} tangkapan (FileNotFoundException e) {
e.printStackTrace();
} tangkapan (IOException e) {
e.printStackTrace();
}
}
}
3. Simpan file lokal ke database
Anda perlu menambahkan driver database MySql--mysql-connector-java-5.1.24-bin.jar
Copy kode kodenya sebagai berikut:
impor java.io.IOException;
impor java.io.InputStream;
impor java.sql.Koneksi;
impor java.sql.DriverManager;
impor java.sql.PreparedStatement;
impor java.sql.SQLException;
kelas publik Sisipkan Gambar {
public static void main(String[] args) {
mencoba {
Kelas.forName("com.mysql.jdbc.Driver").newInstance();
} tangkapan (InstantiationException e) {
e.printStackTrace();
} tangkapan (IllegalAccessException e) {
e.printStackTrace();
} tangkapan (ClassNotFoundException e) {
e.printStackTrace();
}
String pengguna = "root";
Kata sandi string = "root";
String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";
Koneksi koneksi = null;
mencoba {
koneksi = DriverManager.getConnection(url, pengguna, kata sandi);
} tangkapan (SQLException e) {
e.printStackTrace();
}
Pernyataan Disiapkan Pernyataan Disiapkan = null;
Aliran Masukan aliran masukan = null;
inputStream = ImageUtil.getImageByte("D://temp//photo1.png");
mencoba {
String sql = "masukkan ke dalam nilai foto(id,nama,foto)(?,?,?)";
readyStatement = koneksi.prepareStatement(sql);
readyStatement.setInt(1, 1);
readyStatement.setString(2, "Julie");
readyStatement.setBinaryStream(3, inputStream,
inputStream.tersedia());
readyStatement.eksekusi();
} tangkapan (SQLException e) {
e.printStackTrace();
} tangkapan (IOException e) {
e.printStackTrace();
} Akhirnya {
mencoba {
jika (inputStream != nol)
inputStream.close();
} tangkapan (IOException e) {
e.printStackTrace();
} Akhirnya {
mencoba {
jika (pernyataan siap pakai!= null)
pernyataan siap.close();
} tangkapan (SQLException e) {
e.printStackTrace();
} Akhirnya {
mencoba {
koneksi.close();
} tangkapan (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
4. Membaca dan menghasilkan gambar dari database
Copy kode kodenya sebagai berikut:
impor java.io.IOException;
impor java.io.InputStream;
impor java.sql.Koneksi;
impor java.sql.DriverManager;
impor java.sql.ResultSet;
impor java.sql.SQLException;
impor java.sql.Pernyataan;
kelas publik ImageGet {
public static void main(String[] args) {
mencoba {
Kelas.forName("com.mysql.jdbc.Driver").newInstance();
} tangkapan (InstantiationException e) {
e.printStackTrace();
} tangkapan (IllegalAccessException e) {
e.printStackTrace();
} tangkapan (ClassNotFoundException e) {
e.printStackTrace();
}
String pengguna = "root";
Kata sandi string = "root";
String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";
Koneksi koneksi = null;
mencoba {
koneksi = DriverManager.getConnection(url, pengguna, kata sandi);
} tangkapan (SQLException e) {
e.printStackTrace();
}
Pernyataan pernyataan = null;
HasilSet hasilSet = null;
Aliran Masukan aliran masukan = null;
mencoba {
pernyataan = koneksi.createStatement();
String sql = "pilih p.foto dari foto p dimana id = 1";
resultSet = pernyataan.executeQuery(sql);
resultSet.next();
inputStream = resultSet.getBinaryStream("foto");
ImageUtil.readBlob(inputStream, "D://temp//photo2.png");
} tangkapan (SQLException e) {
e.printStackTrace();
} Akhirnya {
mencoba {
jika (aliran masukan!= nol)
inputStream.close();
} tangkapan (IOException e) {
e.printStackTrace();
} Akhirnya {
mencoba {
jika (hasilSet != null)
resultSet.close();
} tangkapan (SQLException e) {
e.printStackTrace();
} Akhirnya {
jika (pernyataan != nol)
jika (pernyataan != nol)
mencoba {
pernyataan.close();
} tangkapan (SQLException e) {
e.printStackTrace();
} Akhirnya {
jika (koneksi!= null)
mencoba {
koneksi.close();
} tangkapan (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
}
5. Selesai!