help insert image to database

11 views
Skip to first unread message

beem a

unread,
Sep 8, 2010, 4:48:06 PM9/8/10
to jug-b...@googlegroups.com
dear all jugi
saya sedang develop program capture dari webcam, garis besarprogramnya
ambil gambar dari webcam hasilnya file tipe image( bentuk
java.awt.Image), kemudian mau saya save ke database tapi saya bingung
scriptnya???
udah googling dapete ini


ini kode hasil googling nya

Connection conn = null;
FileInputStream fis = null;
PreparedStatement ps = null;
try {
conn =
DriverManager.getConnection("jdbc:mysql://localhost/image", "root",
"");

String INSERT_PICTURE = "insert into MyPictures( name,
photo) values ( ?, ?)";

conn.setAutoCommit(false);
File file = ambilgmbr_jfch.getSelectedFile(); << ambil
dari jfilechooser
fis = new FileInputStream(file);
ps = conn.prepareStatement(INSERT_PICTURE);
ps.setString(1, nama.getText());
ps.setBinaryStream(2, fis, (int) file.length());
ps.executeUpdate();
conn.commit();

( dalam kode ini file inputnya yaitu path image bentuk java.io.file
sedangkan program saya inputnya file Image( bentuk java.awt.Image))

gmana solusi menurut teman teman untuk save file saya / mungkin
confert bentuk image ke FileInputStream thank for answer

Shadiq Ammar

unread,
Sep 8, 2010, 5:18:00 PM9/8/10
to jug-b...@googlegroups.com
Field di tablenya harus menggunakan tipe data Blob.

A BLOB is a binary large object that can hold a variable amount of data. The four BLOB types TINYBLOB, BLOB, MEDIUMBLOB and LONGBLOB differ only in the maximum length of the values they can hold.

Ini contoh sourcenya, ref : http://www.roseindia.net/jdbc/jdbc-mysql/insert-image-in-mysql.shtml

import java.sql.*;
import java.io.*;

public class insertImage{
  public static void main(String[] args) {
    System.out.println("Insert Image Example!");
    String driverName = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "hibernatetutorial";
    String userName = "root";
    String password = "root";
    Connection con = null;
    try{
      Class.forName(driverName);
      con = DriverManager.getConnection(url+dbName,userName,password);
      Statement st = con.createStatement();
      File imgfile = new File("images.jpg");
      FileInputStream fin = new FileInputStream(imgfile);
      PreparedStatement pre = con.prepareStatement("insert into Image values(?,?,?)");
      pre.setInt(1,5);
      pre.setString(2,"Durga");
      pre.setBinaryStream(3,fin,(int)imgfile.length());
      pre.executeUpdate();
      System.out.println("Inserting Successfully!");
      pre.close();
      con.close();  
    }
    catch (Exception e){
      System.out.println(e.getMessage());
    }
  }
}


I hope it works
--
Ammar Shadiq
http://ammarshadiq.web.id

mudzakkir

unread,
Sep 10, 2010, 1:32:20 AM9/10/10
to jug-b...@googlegroups.com
Kalau boleh tahu ngambil gambar-nya itu memakai library tidak ya?
Misalkan JMF atau FMJ? Coba di cek lagi, kode-nya. Harusnya sebelum bisa
tampil di Image, temporer data gambar sebelumnya dari webcam itu
disimpan di buffer. Baru ditampilkan dalam bentuk Image. baru setelah
data didapat, bisa disimpan dalam bentuk BLOB.

beem a

unread,
Sep 10, 2010, 9:51:19 AM9/10/10
to jug-b...@googlegroups.com
sebelumnya saya ucapkan selamat idul fitri 1431H bagi yang menjalankan :)
terimakasih jawapannya teman problem udah solved kok
buat
@ammar iya mas savenya udah di blob but code dari rose india itu
bentuk input image = File. tetapi input dari saya adalah image
(java.awt.image)
tq mas fo answer
@mudzakkir
iya mas ambilnya dari jmf hasilnya adlah image (java.awt.image)
btw FMJ itu apa ya mas??
skalian nanya lagi
kira kira kalo deploy aplikasi dari dari jmf kalo mau di buat
installer itu gman ya? apaka jmf bisa di pakage jadi satu dalam file
instller misal kita jadikan semacam setup (software dan jmf) ato kita
instal; thnks for answer

ni kode buat insert ke database (input java.awt.image)
img = file input image (java.awt.image)
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
ImageIO.write((RenderedImage) img, "jpeg", baos);
} catch (IOException ex) {
//
Logger.getLogger(StoreOnDatabaseGrabbedCamMouthImage.class.getName()).log(Level.SEVERE,
null, ex);
}

byte[] thumbnail = baos.toByteArray();
baos.close();

//insert ke database (blob)
ps.setBinaryStream(2, new ByteArrayInputStream(thumbnail),
thumbnail.length);

Shadiq Ammar

unread,
Sep 10, 2010, 10:34:03 AM9/10/10
to jug-b...@googlegroups.com
Waduh maaf gak teliti baca post nya ^_^
Sepertinya memang lebih bagus lewat cara convert ke-stream diatas daripada write ke file, IO const-nya gede klo write ke file. Syukurlah klo udah solved :)

mudzakkir

unread,
Sep 11, 2010, 5:11:48 AM9/11/10
to jug-b...@googlegroups.com
FMJ itu ya framework untuk media seperti JMF. Tapi banyak yang
mengatakan FMJ lebih bagus dari pada JMF.
O, jadi untuk output dari JMF itu langsung bentuk Image. Setahu saya
paket java.awt itu cuma representasi dari GUI, sedangkan untuk urusan
Device, biasanya yang banyak bekerja adalah java.io. Syukurlah kalau
sudah solved. Pada akhirnya yang bekerja java.io lagi. Wah tentang
built-nya ada yang menyarankan built versi .jar saja. Ini JSE kan? Atau
jika JEE .war-nya bisa langsung di deploy.

--
Ujian itu pasti, sabar itu pilihan
Mudzakkir

beem a

unread,
Sep 13, 2010, 12:13:04 AM9/13/10
to jug-b...@googlegroups.com
@shadiq thanks :)
@mudzakkir saya ke situsnya fmj kykny fmj ini masih perlu jmf juga ya
mas,, iya ini develop di j2se kan ribet ya kalo misal waktu deploy ke
client, hrs intal jre habis itu instal jmf trus instal databse
+aplikasi jar nya ?? ada mungkin ada solusi lain

Mudzakkir Toha

unread,
Sep 13, 2010, 9:20:56 AM9/13/10
to jug-b...@googlegroups.com
FMJ adalah kelanjutan dari project JMF. Sekarang JMF untuk development
sudah di ganti menjadi oficial FMJ. Setahu saya seperti itu, lah
kira-kira.
harusnya kamu lebih tahu, karena aplikasimu dah jadi. Saya sendiri
kemarin juga coba membuat aplikasi yang sama, tapi ketika mau listing
device, ternyata tidak terdeteksi.Padahal kode yang saya pakai sudah
benar sudah google sana sini, akhirnya tidak saya lanjutkan koding
aplikasi capture webcam. Webcam yang dipakai device-nya built in lappy
compaq cq40. Kalau memakai FMJ atau JMF studio, bisa detect, kalau
koding sendiri kok ga kedetect.
Untuk instalasi JSE memang agak sedikit ribet seperti itu, untuk two
tier. Ya nanti coba lihat pendapat anggota milis yang lain.

beem a

unread,
Sep 13, 2010, 9:52:08 PM9/13/10
to jug-b...@googlegroups.com
@mudzakir ok mas tq for answer ...
Reply all
Reply to author
Forward
0 new messages