Hey Paul,
If all you want is the SQL, you can get that with a tiny bit of hacking:
===
Reader reader;
SqlMapClientImpl smc;
SelectStatement statement;
String sql;
// this is just plumbing:
reader = Resources.getResourceAsReader("com/mwt/config/sqlmap.xml");
smc = (SqlMapClientImpl) SqlMapClientBuilder.buildSqlMapClient(reader);
// At this point, you can get a statement and get freaky with it
// ...all unsupported of course, and if a later release breaks it, you
// have been warned. :-)
statement = (SelectStatement)
smc.getDelegate().getMappedStatement("Customers.fetch");
// replace the 2nd parameter below with YOUR parameter object, a
bean or map or whatever.
sql = statement.getSql().getSql(null, null);
// ALSO, who says this has to be SQL? it could be HQL, or an LDAP query, or
// whatever other crazy stuff you want to try. This is the result
in any case:
System.out.println(sql);
===
Larry
On 1/8/07, Paul Benedict <[EMAIL PROTECTED]> wrote:
Brandon,
Sometimes it's good to construct the object directly with access to the
ResultSet, but using IBATIS to dynamically write the SQL. There's a
ticket open for this functionality:
http://issues.apache.org/jira/browse/IBATIS-226
My driver is because I cache at the object instance level, and return
the same instance for the same primary key. This is a little deeper than
ibatis' caching which is at the statement level -- but with multiple
statements potentially returning the same object (in terms of object
identity), this is where having access to the ResultSet is necessary. If
I can shortcut the creation of the object, I will.
Paul
Brandon Goodin wrote:
> I'm not completely sure what you are asking. But, if you are asking if
> you can get the ResultSet itself that would be a no. iBATIS is JDBC
> wrapper. If you find that you need more direct access to JDBC then you
> should use JDBC directly.
>
> Brandon
>
> On 1/7/07, *Carfield Yim* <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
> Can I get the reference of resultset when the object is initalizating?
>
> On 1/8/07, Brandon Goodin <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
> > You can find the javadoc here:
> >
> >
>
http://ibatis.apache.org/docs/java/dev/com/ibatis/sqlmap/engine/mapping/result/ResultObjectFactory.html
>
<http://ibatis.apache.org/docs/java/dev/com/ibatis/sqlmap/engine/mapping/result/ResultObjectFactory.html>
> >
> > I was assuming you were wanting to map result values to a
> constructor. If
> > you are trying to map results to a constructor, it would seem a
> tedious
> > effort to use the ResultObjectFactory for this.
> >
> > I know it is lame that we don't have this functionality. But, we've
> > discussed adding the constructor mapping functionality and have
> decided it
> > is best to delay adding it until iB3 (no eta).
> >
> > Brandon
> >
> >
> > On 1/7/07, Carfield Yim <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
> > > I just check for the document and I cannot see those APIs ,
> > > http://ibatis.apache.org/docs/java/user/ , am I looking
> > for wrong
> > > thing?
> > >
> > > On 1/8/07, Goga, Murtaza < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
> > > > Have you considered using an implementation of
> ResultObjectFactory? It
> > can be configured within iBatis or injected into the
> SqlMapExecutorDelegate.
> > Either ways you will have control over the creation and subsequent
> > initialization of objects.
> > > >
> > > > ________________________________
> > > >
> > > > From: Peng Wang [mailto: [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>]
> > > > Sent: Sun 1/7/2007 9:26 PM
> > > > To: [email protected]
> <mailto:[email protected]>
> > > > Subject: Re: Can ibatis work with java object with
> constructor have
> > parameters?
> > > >
> > > >
> > > > You can do this using Spring. I think iBatis does not have to
> support
> > this.
> > > >
> > > >
> > > > On 1/8/07, Carfield Yim < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]> > wrote:
> > > >
> > > > To bad to hear that, is it planned to be implemented?
> > > >
> > > > On 1/8/07, Brandon Goodin < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
> > > > > This is not currently implemented.
> > > > >
> > > > > Brandon
> > > > >
> > > > >
> > > > > On 1/6/07, Carfield Yim < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > wrote:
> > > > > > I like to pass something to the object while
> initalization,
> > can I
> > > > > > specific about that?
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> >
> >
>
>