ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Meindert" <meind...@pastelebusiness.com>
Subject RE: the return result of insert, update, and delete in SqlMapClient API
Date Wed, 14 Dec 2005 07:25:17 GMT
Hi John Chien,
 

Sorry but are not to sure about what you mean with the sequence stuff.

 

I’m using the selectKey tag to return to me the automatic key generated by
the database,

So for table A with columns id (=auto number), column1, column2 I would just
insert data for the column1 and column2 and let <selectKey> return me the
value in the generated id column, here is a example that works for mysql and
mssql:

 

<insert id="insertA" parameterClass="DataBean">

    INSERT INTO A (column1, column2)

      VALUES (#column1#, #column2#)

      <selectKey keyProperty="id" resultClass="int">

        SELECT @@IDENTITY AS ID

      </selectKey>

  </insert>

 

MEINDERT HOVING



From: John Chien [mailto:john.chien@ncmail.net] 
Sent: 13 December 2005 05:21 PM
To: user-java@ibatis.apache.org
Cc: lmeadors@apache.org
Subject: Re: the return result of insert, update, and delete in SqlMapClient
API

 

Meindert:
 
Thanks. I could not see the javadoc now.
The iBatis.apache.org is down currently.
 
How can I use the <selectKey> tag ?
Do you have an example ? 
 
Suppose the table is A, and its primary key is id. The sequence of table A
is seq_A.
The bean that conatains the data to be inserted is called DataBean which
properties are id, column1, column2.
 
Can I specify the statement as:
 
 
<statement id="insertA" parameterClass="DataBean" resultClass="Integer">
 
    <selectKey property="id" type="pre" resultClass="int">
 
        select seq_A.nextval as value from dual
 
    </selectKey>            
 
    INSERT INTO A
 
        (id, column1, column2) 
    VALUES
 
        (#id#, #column1#, #column2#)
 
</statement>
 
 
Thanks,
 
 



Meindert wrote: 

 
 
  

Uhm, insert() does not return an int.
    

According to the Developer Guide (page 43) it does.
The javadoc say's that it returns a java.lang.Object containing the primary
key, the primary key field is defined with the <selectKey> tag in the Sql.
 
Meindert
 
  

Larry
    

 
 
On 12/13/05, Leonardo Kenji Shikida HYPERLINK
"mailto:shikida@gmail.com"<shikida@gmail.com> wrote:
  

I believe it means the number of affected rows (just like jdbc)
 
On 12/13/05, John Chien HYPERLINK
"mailto:john.chien@ncmail.net"<john.chien@ncmail.net> wrote:
    

The SqlMapClient API indicates:
 
public int insert(String statementName, Object parameterObject) throws
SQLException.
public int update(String statementName, Object parameterObject) throws
SQLException
public int delete(String statementName, Object parameterObject) throws
SQLException
 
what does the return int repesent ?
 
the example shows
 
int rows = sqlMap.insert("insertProduct", product);
 
Does the return int represent the number of rows being inserted, updated
or deleted ?
 
Is there anyway of returning the Object or the List of the rows being
inserted, updated or deleted ?
 
 
Thanks,
 
John Chien
 
 
 
      

 
--
 
[]
 
Kenji
_______________________
HYPERLINK "http://kenjiria.blogspot.com"http://kenjiria.blogspot.com
HYPERLINK "http://gaitabh.blogspot.com"http://gaitabh.blogspot.com
 
    

 
  


--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.13.13/195 - Release Date: 08/12/2005



-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.13.13/195 - Release Date: 08/12/2005
 

Mime
View raw message