iBatis的SqlMapClient.insert()方法的返回值

来源:互联网 发布:删失数据的处理 编辑:程序博客网 时间:2024/04/30 09:11
 

Object com.ibatis.sqlmap.client.SqlMapExecutor.queryForObject(String id, Object parameterObject) throws SQLException

Executes a mapped SQL INSERT statement. Insert is abit different from other update methods, as it provides facilities forreturning the primary key of the newly inserted row (rather than theeffected 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:
Theprimary key of the newly inserted row. This might be automaticallygenerated by the RDBMS, or selected from a sequence table or othersource.
(这个方法返回的是一个主键object)
Throws:
java.sql.SQLException If an error occurs.

====看下例子=======================

<!-- Insert example, using the Account parameter class -->
  <insert id="insertAccount" parameterClass="Account">
    insert into ACCOUNT (
      ACC_FIRST_NAME,
      ACC_LAST_NAME,
      ACC_EMAIL)
    values (
      #firstName#, #lastName#, #emailAddress#
    )
  </insert>

  public static Object insertAccount (Account account) throws SQLException {
    return sqlMapper.insert("insertAccount", account);
  }

实际上, insertAccount 返回的总是一个null

原来用法是这样的:

<!-- Insert example, using the Account parameter class -->
  <insert id="insertAccount" parameterClass="Account">
    insert into ACCOUNT (
      ACC_FIRST_NAME,
      ACC_LAST_NAME,
      ACC_EMAIL)
    values (
      #firstName#, #lastName#, #emailAddress#
    )
   <selectKey resultClass="int" keyProperty="id" >
   SELECT @@IDENTITY AS ID
  </selectKey>

  </insert>
关键在嵌套的那句selectKey

我得表的主键是ID,所以返回的是一个Integer对象,其值就是插入的那个account的id, 不过不知道对于复合主键的情况的结果如何。。。。。。。。

原创粉丝点击