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

原创 2007年10月08日 13:35:00

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, 不过不知道对于复合主键的情况的结果如何。。。。。。。。

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

 Object com.ibatis.sqlmap.client.SqlMapExecutor.queryForObject(String id, Object parameterObject) th...
  • oswin_jiang
  • oswin_jiang
  • 2009-04-30 10:28:00
  • 13616

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

Object com.ibatis.sqlmap.client.SqlMapExecutor.queryForObject(String id, Object parameterObject) thr...
  • z69183787
  • z69183787
  • 2015-08-08 20:36:34
  • 666

【ibatis】SqlMapClient.insert返回值与selectKey

使用oracle数据库+ibatis,sqlmap配置文件中的插入数据的操作getSqlMapClientTemplate().insert() 返回总是null。该函数的返回值是插入数据的主键值,...
  • u013177446
  • u013177446
  • 2016-12-30 15:26:45
  • 790

ibatis的insert方法的返回值

  • 2013年04月24日 13:24
  • 3KB
  • 下载

关于ibatis insert返回值

ibatis在使用SqlMapClientTemplate的insert(String statementName, Object parameterObject)或insert(String sta...
  • u014253480
  • u014253480
  • 2015-12-30 17:17:43
  • 5172

Ibatis - insert是否插入成功

今天看到项目中的dao中的insert方法。public int insertMessage(Message message) {this.getSqlMapClientTemplate().inse...
  • DR_LF
  • DR_LF
  • 2010-12-20 21:55:00
  • 7724

java和ibatis调用存储过程并取得返回值

http://blog.csdn.net/jiandanfeng2/article/details/6609623 由于存储过程的一系列好处,比如减少sql语句的网络传输等等。使得很多开发人员喜欢...
  • it_taojingzhan
  • it_taojingzhan
  • 2016-04-25 10:08:32
  • 4091

ibatis如何返回存储过程中的输出参数

ibatis会经常调用存储过程,有的有返回值有的是输出参数,下面是带输出参数的存储过程调用: java代码:HashMap paramMap = new HashMap(); par...
  • u011217058
  • u011217058
  • 2016-06-28 16:25:34
  • 1065

IBATIS调用oracle存储过程——获取返回值

IBATIS调用oracle存储过程——获取返回值           成百万数据量的表我们经常会加上表索引以方便查询,但是如果对这样的表经行数据批量修改的时候,一般我们用普通的update语句经行...
  • zhanglujie2008
  • zhanglujie2008
  • 2013-04-05 16:05:28
  • 1312

使用 iBatis 调用存储过程并返回值

sqlmap 这样写: {? = call sf_generate_occur_should.sf_feeitem_in_out(?,?,?,...
  • allanking666
  • allanking666
  • 2009-09-03 14:26:00
  • 3126
收藏助手
不良信息举报
您举报文章:iBatis的SqlMapClient.insert()方法的返回值
举报原因:
原因补充:

(最多只允许输入30个字)