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 insert返回值

ibatis在使用SqlMapClientTemplate的insert(String statementName, Object parameterObject)或insert(String sta...
  • u014253480
  • u014253480
  • 2015年12月30日 17:17
  • 4263

Mybatis/Ibatis,数据库操作的返回值

Mybatis/Ibatis,数据库操作的返回值 2014-04-22 14:49 26834人阅读 评论(4) 收藏 举报  分类: Hibernate/Mybatis...
  • evilcry2012
  • evilcry2012
  • 2015年12月29日 11:55
  • 2732

ibatis使用方法

iBATIS3.0学习(一)使用iBATIS3.0完成增删改查 博客分类: iBATIS3 iBATISApacheSpringSQLJDBC  使用iBATIS3.0完成增删改查 ...
  • a3126248
  • a3126248
  • 2016年12月20日 21:42
  • 311

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

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

Mybatis/Ibatis,数据库操作的返回值

该问题,我百度了下,根本没发现什么有价值的文章;还是看源代码(详见最后附录)中的注释,最有效了! insert,返回值是:新插入行的主键(primary key);需要包含语句,才会返回主键,否则返回...
  • qq383264679
  • qq383264679
  • 2015年04月14日 16:53
  • 946

Java中使用ibatis调用Oracle存储过程和函数

Hibernate等提供了全面的数据库封装机制的“全自动化”ORM 实现,“全自动”ORM 实现了 POJO 和数据库表之间的映射,以及 SQL 的自动生成和执行。 ibatis是“半自动化”,并不会...
  • aspnet2002web
  • aspnet2002web
  • 2016年04月12日 18:42
  • 1654

iBatis下插入数据返回数据ID的问题

今天让做SSI整合的东西,遇到了使用iBatis插入数据返回主键的问题。一开始按照自己的想法,在插入数据之后通过当前条数据的其他字段将这条数据的主键查询出来,结果当然是不满意。然后在业务层,通过时间生...
  • u014663362
  • u014663362
  • 2014年12月19日 18:15
  • 1410

ibatIS学习笔记---Ibatis的基本使用方法

1.ibatIS的基本使用方法,这里通过一个例子来学习 a.创梦技术qq交流群:CreDream:251572072 ---------------------------------------...
  • lidew521
  • lidew521
  • 2013年06月11日 13:40
  • 4274

IBatis配置一对一、一对多两种实现方式

IBatis配置一对一、一对多两种实现方式有两张表:student(学生)、class(班级),一个学生只属于某一个班级,但某一个班下可以有多个学生。一对一方式一...
  • Muspelheim
  • Muspelheim
  • 2016年01月08日 22:41
  • 2685

解决ibatis传入参数为NULL的异常

ibatis传入参数(一个对象)中某些属性为null,插入数据时出现异常。
  • wangxy799
  • wangxy799
  • 2016年03月28日 10:16
  • 409
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iBatis的SqlMapClient.insert()方法的返回值
举报原因:
原因补充:

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