Kris, You are right, I modified that piece of code a little bit, CallableStatement stmt = conn.prepareCall("{?=call chr(?)}"); Then my log file were: Select * from chr(65) as result; Select * from chr(66) as result; ...... However, if I use: PrepareStatement stmt = conn.prepareStatement("SELECT chr(?)"); Then my log file are same as yours.i.e. it use PREPARE and EXECUTE.
So, I am getting confusion. I think CallableStatement is extended from PrepareStatement, it should have same behaviou. Any comment? Thanks. Jie Liang -----Original Message----- From: Kris Jurka [mailto:[EMAIL PROTECTED] Sent: Thursday, June 17, 2004 11:59 AM To: Jie Liang Cc: Tom Lane; [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: RE: [JDBC] Prepare Statement On Thu, 17 Jun 2004, Jie Liang wrote: > Kirs, > > I re-compile with setUseServerPrepare(true), it works fine, thanks. > However, reading from my log file, what I saw is that five same > SELECTs with different argument, so I am wondering that the > PrepareStatement really save time than individualy execute five > SELECTs ??? > This is what I see in the log file: 2004-06-17 11:55:35 [23254] LOG: statement: PREPARE JDBC_STATEMENT_1(integer) AS SELECT $1 ; EXECUTE JDBC_STATEMENT_1(1) 2004-06-17 11:55:35 [23254] LOG: statement: EXECUTE JDBC_STATEMENT_1(2) 2004-06-17 11:55:35 [23254] LOG: statement: EXECUTE JDBC_STATEMENT_1(3) 2004-06-17 11:55:35 [23254] LOG: statement: EXECUTE JDBC_STATEMENT_1(4) 2004-06-17 11:55:35 [23254] LOG: statement: EXECUTE JDBC_STATEMENT_1(5) 2004-06-17 11:55:35 [23254] LOG: statement: DEALLOCATE JDBC_STATEMENT_1 I don't know why this would be different for you. What exact version of the server and driver are you using? Kris Jurka ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly