> -----Original Message----- > From: Emmanuel Eze [mailto:[EMAIL PROTECTED]] > Sent: Thursday, October 03, 2002 3:56 AM > To: [EMAIL PROTECTED] > Subject: Encode a JPEG Image > > > Hi, > > Can someone please advise me on how to serve a JPEG image > that is stored as > a binary stream in a database?
import java.sql.*; import java.io.*; public class TestDatabaseBlobFetch { private static final String TABLE_SELECT = "SELECT moviedata FROM MovieArchive WHERE title = ?"; private final Connection con; public TestDatabaseBlobFetch(String driver, String url, String user, String password) throws SQLException, ClassNotFoundException { Class.forName(driver); con = DriverManager.getConnection(url, user, password); System.out.println("Driver: " + driver); } public void testSelectBlocksAtATime() throws SQLException { long start = -System.currentTimeMillis(); System.out.println("SELECT: 64kb blocks at a time"); PreparedStatement stmt = con.prepareStatement(TABLE_SELECT); stmt.setString(1, "Babe"); ResultSet rs = stmt.executeQuery(); int count=0; if (rs.next()) { try { System.out.println("Retrieving Data"); OutputStream out = new BufferedOutputStream( new FileOutputStream("Data.1")); InputStream in = new BufferedInputStream( rs.getBinaryStream(1)); byte[] buf = new byte[65536]; int i; while((i = in.read(buf, 0, buf.length)) != -1) { out.write(buf, 0, i); count += i; } out.close(); } catch(IOException ex) { ex.printStackTrace(); } } System.out.println("fetched " + count + " bytes"); start += System.currentTimeMillis(); System.out.println("That took " + start + "ms"); stmt.close(); } public void testSelectWithGetBytes() throws SQLException { long start = -System.currentTimeMillis(); System.out.println("SELECT: all at once"); PreparedStatement stmt = con.prepareStatement(TABLE_SELECT); stmt.setString(1, "Babe"); ResultSet rs = stmt.executeQuery(); byte[] data = null; if (rs.next()) { System.out.println("Retrieving Data"); data = rs.getBytes(1); try { FileOutputStream out = new FileOutputStream("Data.2"); out.write(data, 0, data.length); out.close(); } catch(IOException ex) { ex.printStackTrace(); } } System.out.println("fetched " + data.length + " bytes"); start += System.currentTimeMillis(); System.out.println("That took " + start + "ms"); stmt.close(); } public void testAll() throws SQLException { testSelectBlocksAtATime(); testSelectWithGetBytes(); } public static void main(String[] args) throws Exception { if (args.length != 4) usage(); TestDatabaseBlobFetch test = new TestDatabaseBlobFetch ( args[0], args[1], args[2], args[3]); test.testAll(); } private static void usage() { System.out.println( "usage: TestDatabaseBlobFetch driver url username password"); System.exit(1); } } > > > Thanks > > ============================================================== > ============= > To unsubscribe: mailto [EMAIL PROTECTED] with body: > "signoff JSP-INTEREST". > For digest: mailto [EMAIL PROTECTED] with body: "set > JSP-INTEREST DIGEST". > Some relevant FAQs on JSP/Servlets can be found at: > > http://archives.java.sun.com/jsp-interest.html > http://java.sun.com/products/jsp/faq.html > http://www.esperanto.org.nz/jsp/jspfaq.jsp > http://www.jguru.com/faq/index.jsp > http://www.jspinsider.com > =========================================================================== To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST". For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST DIGEST". Some relevant FAQs on JSP/Servlets can be found at: http://archives.java.sun.com/jsp-interest.html http://java.sun.com/products/jsp/faq.html http://www.esperanto.org.nz/jsp/jspfaq.jsp http://www.jguru.com/faq/index.jsp http://www.jspinsider.com