ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Larry Meadors" <lmead...@apache.org>
Subject Re: Can ibatis work with java object with constructor have parameters?
Date Tue, 09 Jan 2007 12:57:06 GMT
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 <pbenedict@apache.org> 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* <carfield@gmail.com
> > <mailto:carfield@gmail.com>> wrote:
> >
> >     Can I get the reference of resultset when the object is initalizating?
> >
> >     On 1/8/07, Brandon Goodin <brandon.goodin@gmail.com
> >     <mailto:brandon.goodin@gmail.com>> 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 <carfield@gmail.com
> >     <mailto:carfield@gmail.com>> 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 < murtaza.goga@trisyngroup.com
> >     <mailto:murtaza.goga@trisyngroup.com>> 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: wpcfan@gmail.com
> >     <mailto:wpcfan@gmail.com>]
> >      > > > Sent: Sun 1/7/2007 9:26 PM
> >      > > > To: user-java@ibatis.apache.org
> >     <mailto:user-java@ibatis.apache.org>
> >      > > > 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 < carfield@gmail.com
> >     <mailto:carfield@gmail.com> > wrote:
> >      > > >
> >      > > >         To bad to hear that, is it planned to be implemented?
> >      > > >
> >      > > >         On 1/8/07, Brandon Goodin < brandon.goodin@gmail.com
> >     <mailto:brandon.goodin@gmail.com>> wrote:
> >      > > >         > This is not currently implemented.
> >      > > >         >
> >      > > >         > Brandon
> >      > > >         >
> >      > > >         >
> >      > > >         > On 1/6/07, Carfield Yim < carfield@gmail.com
> >     <mailto:carfield@gmail.com>
> >      > <mailto: carfield@gmail.com <mailto:carfield@gmail.com>> >
wrote:
> >      > > >         > > I like to pass something to the object while
> >     initalization,
> >      > can I
> >      > > >         > > specific about that?
> >      > > >         > >
> >      > > >         >
> >      > > >         >
> >      > > >
> >      > > >
> >      > > >
> >      > > >
> >      > > >
> >      > >
> >      >
> >      >
> >
> >
>

Mime
View raw message