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:[EMAIL PROTECTED]
Sent: 13 December 2005 05:21 PM
To: user-java@ibatis.apache.org
Cc: [EMAIL PROTECTED]
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 <[EMAIL PROTECTED]> wrote:
  
I believe it means the number of affected rows (just like jdbc)
 
On 12/13/05, John Chien <[EMAIL PROTECTED]> 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
_______________________
http://kenjiria.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

Reply via email to