Re: [INTERFACES] Trouble with large objets and jdbc
От | Brian P Millett |
---|---|
Тема | Re: [INTERFACES] Trouble with large objets and jdbc |
Дата | |
Msg-id | 373AEF3B.7310BE9E@ec-group.com обсуждение исходный текст |
Ответ на | Trouble with large objets and jdbc (Henri-Pierre CHARLES <hpc@prism.uvsq.fr>) |
Список | pgsql-interfaces |
Henri-Pierre CHARLES wrote: > Hello, > > I want to use large objets to store images in a database with the jdbc > interface. I have try to use PreparedStatement which has > setBinaryStream () but it's not possible with the old version I > usually use (6.4.2). I have download the 6.5b1 and unfortunately > setBinaryStream () is still not implemented. This bug has been fixed as of Monday. They (Hackers group) have also fixed a big hairy bug with the backend. If you usethe anonymous cvs to checkout the latest snapshot, you will find an ImageViewer.java example that works, the blobtest.java works also. I also use code such as this to work fine: // The UPDATE statement to be used for populating the item_picture and // item_descr columns String itemUpdateStmt = "UPDATEitem SET item_picture = ?, item_descr = ?"+ " WHERE item_num = ?"; // Create a PreparedStatement object & use itto update the item_picture // and item_descr columns in the item table PreparedStatement updateStmt = conn.prepareStatement(itemUpdateStmt); // File names for the image & text files String itemPictureFileName = ("item_"+ new Integer(i).toString() + ".gif"); String itemDescrFileName = ("item_" + new Integer(i).toString() + ".txt"); // java.io.File objects corresponding to the image & text files File itemPictureFile = new File(itemPictureFileName); File itemDescrFile = new File(itemDescrFileName); // Byte arrays to store text & byte data for the item_picture and // item_descr columns byte itemPictureArray [] =new byte[(int)itemPictureFile.length()]; String itemDescrString = ""; // Using java.io.FileInputStream to reading the image & text files // into byte arrays FileInputStream itemPictureInputStream= new FileInputStream(itemPictureFile); itemPictureInputStream.read(itemPictureArray, 0, (int)itemPictureFile.length()); FileReader fr = new FileReader(itemDescrFile); BufferedReader br = new BufferedReader(fr); String lineIn; while((lineIn = br.readLine()) != null) itemDescrString += lineIn; // Set the values of the parameters & execute the statement updateStmt.setBytes(1, itemPictureArray); updateStmt.setString(2,itemDescrString); updateStmt.setInt(3, i); updateStmt.executeUpdate(); Then to read/view the image, I do: // read the image from the resultset byte itemPictureArray [] = queryResults.getBytes(2); Image img = Toolkit.getDefaultToolkit().createImage(itemPictureArray); itemPictureCanvas.setImage(img); itemPictureCanvas.repaint(); -- Brian Millett Enterprise Consulting Group "Heaven can not exist, (314) 205-9030 If the family is not eternal" bpm@ec-group.com F. Ballard Washburn
В списке pgsql-interfaces по дате отправления: