Re: JDBC + PostgreSQL + LargeObjects

Поиск
Список
Период
Сортировка
От Paulo Delgado
Тема Re: JDBC + PostgreSQL + LargeObjects
Дата
Msg-id 20020218165008.151d34e5.pdelgado@pasaportevip.com
обсуждение исходный текст
Ответ на Re: JDBC + PostgreSQL + LargeObjects  (Marc Lavergne <mlavergne-pub@richlava.com>)
Список pgsql-jdbc
Thank you very  much! now it works perfectly! w00t!

On Mon, 18 Feb 2002 15:37:59 -0500
Marc Lavergne <mlavergne-pub@richlava.com> wrote:

> I would just change this:
>
> ...
> int i=0;
> for(i=0; i<obj.size() ; i++)
> {
>    out.write(buf[i]);
> }
> ...
>
> to this:
>
> ...
> out.write(buf);
> out.flush();
> out.close();
> ...
>
> Writing it out 1 byte at a time would be way too inefficient and is
> probably why your CPU pegs.
>
> Cheers,
>
> Marc
>
>
> Paulo Delgado wrote:
>
> > Ok folks, now it works! thank you all!  (i'm using a servlet to avoid the white spaces)
> > Now i have another problem, when the servlet is writing the bytes to the outputstream, the cpu load increases to
100%,i guess the problem is in the for() block, should i look for another way of doing this? or use perl? or what? 
> >
> > check it out:
> >
> > import javax.servlet.*;
> > import java.io.*;
> > import javax.servlet.http.*;
> > import java.sql.*;
> > import org.postgresql.largeobject.*;
> >
> > public class show_coctel extends HttpServlet
> > {
> >     public void doGet(HttpServletRequest request , HttpServletResponse response) throws ServletException,
IOException 
> >     {
> >     ServletOutputStream out = response.getOutputStream();
> >     response.setContentType("image/jpeg");
> >     try
> >         {
> >         Class.forName("org.postgresql.Driver");
> >         }
> >     catch(ClassNotFoundException cnfex)
> >         {
> >         cnfex.printStackTrace();
> >         }
> >     try
> >         {
> >         Connection mycon;
> >         mycon= DriverManager.getConnection("jdbc:postgresql://localhost:5432/database", "username" , "password");
> >         mycon.setAutoCommit(false);
> >
> > // Get the Large Object Manager to perform operations with
> >         LargeObjectManager lobj = ((org.postgresql.Connection)mycon).getLargeObjectAPI();
> >         PreparedStatement ps = mycon.prepareStatement("SELECT pic FROM cocteles WHERE
month='"+request.getParameter("m")+"'AND year="+request.getParameter("y")); 
> >         ResultSet rs = ps.executeQuery();
> >         if (rs != null) {
> >             while(rs.next()) {
> >             //open the large object for reading
> >             int oid = rs.getInt(1);
> >             LargeObject obj = lobj.open(oid , LargeObjectManager.READ);
> >
> >             //read the data
> >             byte buf[] = new byte[obj.size()];
> >             obj.read(buf, 0, obj.size());
> >
> >             //do something with the data read here
> >             response.setContentLength(obj.size());
> >             int i=0;
> >             for(i=0; i<obj.size() ; i++)
> >                 {
> >                 out.write(buf[i]);
> >                 }
> >             // Close the object
> >             obj.close();
> >             }
> >             rs.close();
> >         }
> >         ps.close();
> >         mycon.close();
> >         }
> >     catch(SQLException sqex)
> >         {
> >         out.println(sqex.toString());
> >         }
> >     }
> > }
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> >     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> >
> >
>
>
> --
> 01010101010101010101010101010101010101010101010101
>
> Marc P. Lavergne [wk:650-576-7978 hm:407-648-6996]
> Senior Software Developer
> Global Knowledge Management
> Worldwide Support Technologies
> Openwave Systems Inc.
>
> --
>
> "Anyone who slaps a 'this page is best viewed with
> Browser X' label on a Web page appears to be
> yearning for the bad old days, before the Web,
> when you had very little chance of reading a
> document written on another computer, another word
> processor, or another network."
> -Tim Berners-Lee (Technology Review, July 1996)
>
> 01010101010101010101010101010101010101010101010101
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: "Dave Cramer"
Дата:
Сообщение: Re: java.sql.SQLException, message FATAL 1: This connection has been terminated by the administrator
Следующее
От: "Cormac Twomey"
Дата:
Сообщение: getIndexInfo() throws NullPointerException