`

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

阅读更多

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

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.
(这个方法返回的是一个主键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, 不过不知道对于复合主键的情况的结果如何。。。。。。。。

 

本文来自CSDN博客:http://blog.csdn.net/oswin_jiang/archive/2009/04/30/4138938.aspx

分享到:
评论

相关推荐

    SqlMapClient对象.pdf

    `keyProperty`属性指定的是User对象中的属性名(如`id`),在插入操作完成后,`insert`方法的返回值和User对象的`id`属性都会被设置为这个新生成的ID。 3. **参数绑定**: 在`&lt;insert&gt;`标签中,`parameterClass`...

    ibatis_学习文档

    - **方法说明**: 通过调用 `sqlMapClient.queryForObject` 方法执行查询操作。 - **参数**: `userid` 作为查询条件。 - **返回值**: 返回对应的 `User` 实体对象。 #### 四、总结 通过以上分析可以看出,IBatis ...

    SqlMapClient对象.docx

    在Java代码中,插入操作完成后,`insert`方法的返回值以及User对象的`id`属性都会被设置为新生成的ID值。 `parameterClass`属性用于指定插入操作时传入的参数类型。例如: ```xml &lt;insert id="insertUser" ...

    iBatis2.3+oracle 10g 的简单数据库操作例子

    它调用了`sqlMapClient.insert()`方法,传入了SQL映射语句标识符"addStudent"和学生对象,然后判断返回值是否为null来确定插入是否成功。 - `deleteStudentById(int id)`方法用于删除指定ID的学生。同样,它调用了`...

    ibatis 开发指南.doc

    - **SqlMapClient 基本操作**:包括插入(insert)、更新(update)、删除(delete)和查询(select)。 ### **6. OR 映射** - **Mapper Interface**:Java 接口,方法名与 SQLMap 中的 ID 对应,返回值类型对应 ...

    iBATIS 2.3 API JavaDoc chm格式

    API JavaDoc是Java开发中的一个重要参考资料,它详细记录了每个类、接口、方法以及它们的参数、返回值和异常等信息,还包括了类或方法的简短描述。对于iBATIS 2.3,你可以在这里找到以下关键知识点: 1. **...

Global site tag (gtag.js) - Google Analytics