Re: Retrieve Query
От | Achilleus Mantzios |
---|---|
Тема | Re: Retrieve Query |
Дата | |
Msg-id | Pine.LNX.4.44.0602271348500.13368-100000@matrix.gatewaynet.com обсуждение исходный текст |
Ответ на | Re: Retrieve Query (Markus Schaber <schabi@logix-tt.com>) |
Ответы |
Re: Retrieve Query
|
Список | pgsql-jdbc |
O Markus Schaber έγραψε στις Feb 27, 2006 : > Hi, Hugo, > > Hugo Sacramento wrote: > > How do I to retrieve the string query prepared by a PreparedStatement?? > > > ------------- > > PreparedStatement stmt = con.prepareStatement("select * from abc where > > x=?"); > > stmt.setString(1, x); > > System.out.println("My Prepared Query:" + stmt.toString()); > > ------------ > > > > but it don't work. > > There are at least two potential problems: > > - The statement is prepared server-side, and the parameters are sent > separately (binding). Only the server has the "real" representation of > the complete statement. So the prepared statement can only give an > approximation, which is what pgjdbc does. > > - Most connection pooling and datasource mechanisms (e. G. in jboss) > wrap your connection and all other classes (including the statement), > but don't delegate the toString() method, so you'll only get something > like "org.jboss.pool.wrappedStatement@4711". In jboss there is getUnderlyingStatement() method so you could PreparedStatement st=... ..... org.jboss.resource.adapter.jdbc.local.LocalPreparedStatement jst = (org.jboss.resource.adapter.jdbc.local.LocalPreparedStatement) st; org.postgresql.jdbc3.Jdbc3PreparedStatement pst = (org.postgresql.jdbc3.Jdbc3PreparedStatement) jst.getUnderlyingStatement(); System.out.println(pst.toString()); > > HTH, > Markus > -- -Achilleus
В списке pgsql-jdbc по дате отправления: