ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brandon Goodin <brandon.goo...@gmail.com>
Subject Re: OnJava article
Date Thu, 03 Feb 2005 16:24:16 GMT
If you want to get the primary key into the parameter object you can
do that by simply having a <selectKey> statement in your <insert>. We
are looking to add support for the getGeneratedKeys in jdbc 3.0.

Brandon


On Thu, 03 Feb 2005 15:36:58 +0000, Kris Jenkins
<krisajenkins@yahoo.co.uk> wrote:
> Worth noting that the parameter bean will not be affected.  So (if this
> is what you want to accomplish) you need to do:
> 
> public void saveContact( Contact contact ) throws SQLException {
>     Integer id = sqlMap.insert("insertContact",contact);
> 
>     contact.setId( id );
> 
>     log.debug( "I have now saved your object and given it the correct
> id." );
> }
> 
> Kris
> 
> Richard Yee wrote:
> 
> > Mike,
> > According to the JavaDocs for the insert method:
> >
> > Executes a mapped SQL INSERT statement. Insert is a bit different from
> > other update methods, as it provides facilities for returning the
> > primary key of the newly inserted row (rather than the effected rows).
> > This functionality is of course optional.
> >
> > The parameter object is generally used to supply the input data for
> > the INSERT values.
> >
> > *Parameters:*
> >
> >     id - The name of the statement to execute.
> >     parameterObject - The parameter object (e.g. JavaBean, Map, XML
> >     etc.).
> >
> > *Returns:*
> >
> >     The primary key of the newly inserted row. This might be
> >     automatically generated by the RDBMS, or selected from a sequence
> >     table or other source.
> >
> > -Richard
> >
> >
> > At 05:21 AM 2/3/2005, you wrote:
> >
> >> Overall, I think it's a really good article. But one question about
> >> this example...
> >> public void contactInsert() throws SQLException, IOException {
> >> sqlMap.startTransaction(); try { sqlMap.startTransaction(); Contact
> >> contact = new Contact(); contact.setContactId(3);
> >> contact.setFirstName("John"); contact.setLastName("Doe");
> >> sqlMap.insert("insertContact",contact); sqlMap.commitTransaction(); }
> >> finally{ sqlMap.endTransaction(); } }
> >> Inside of our Java code, we create a Contact object, populate its
> >> values, and then call sqlMap.insert(), passing the name of the query
> >> that we want to execute and the Contact. *This method will insert the
> >> new contact and return the primary key of the newly inserted
> >> contact.* Is that last sentence true? I am using <selectKey> now.
> >> Mike
> >>
> >>
> >>
> >> Do you Yahoo!?
> >> Yahoo! Search presents - Jib Jab's 'Second Term'
> >> <http://us.rd.yahoo.com/evt=30648/*http://movies.yahoo.com/movies/feature/jibjabinaugural.html>
> >
> >
> 
> --
> Kris Jenkins
> Email:  kris@jenkster.com
> Blog:   http://cafe.jenkster.com/
> Wiki:   http://wiki.jenkster.com/
> 
>

Mime
View raw message