ibatis mysql insert_Ibatis中insert用法

在Ibatis中,insert()的返回值为一个Object的主键,其实这个Object的主键是这样的来的:如果在bean的xml文件中设置了插入的keyProperty,则insert()方法返回的就是这个主键的值。

例如,所以我们想要在插入时想要插入一个sequence值到数据库的某个字段(当然,这个字段的类型为Number的),我们可以在xml文件中做如下配置(以下为在DB服务器是Oracle的前提下):

SELECT user_account_s.nextval AS userid FROM dualinsert into user_account(userid, username, password, groupname)

values(#userId#, #userName#, #password#, #groupName#)

此时插入到数据库中的某表userid字段的值即使sequence的值。但要注意的是,配置中出现的红色加粗字体一定要对应到bean中的属性字段,也即要与bean中的属性字段名称相同,否则则会抛出异常。

如果是SQL SERVER数据库,则进行如下配置:

insert into user_account(userid, username, password, groupname)

values(#userId#, #userName#, #password#, #groupName#)SELECT @@IDENTITY as userid

如果是MYSQL 数据库,则进行如下配置:

关于Ibatis insert后返回值为null,ibatis的api文档是这样写的解释的:

关于com.ibatis.sqlmap.client.SqlMapExecutor下的insert (java.lang.String id, java.lang.Object parameterObject) 方法,

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.

Throws:

java.sql.SQLException - If an error occurs.

它的意思是说返回值是新插入记录的主键,类型为Object主要是因为主键类型可以是int也可以是String类型。

然而,如果我们使用下列的配置文件进行插入的话,返回的值为null

Xml代码

insert into Prdcategory ( name,pid,deep ) values ( #name#,

#pid#, #deep# )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值