ibatis selectKey 配置

<!--  My sql SEQUENCE-->   
 <insert   id="insertUser-MY-SQL"   parameterClass="user">   
       INSERT   INTO   T_USER   (name, sex) VALUES (#name#,#sex#)   
       <selectKey   resultClass="int"   keyProperty="id" >   
           SELECT   LAST_INSERT_ID() as id  
       </selectKey>   
 </insert> 
 
 <!-- Oracle SEQUENCE  -->   
 <insert id="insertUser-ORACLE" parameterClass="user">    
 <selectKey resultClass="int" keyProperty="id" type="pre">    
 <![CDATA[
 SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL
 ]]>  
 </selectKey> 
 <![CDATA[
 INSERT INTO t_user(id,name,sex)VALUES(#id#,#name#,#sex#)
 ]]>
 </insert> 
 
 <!-- Microsoft SQL Server IDENTITY Column -->    
 <insert  id="insertUser-MS-SQL" parameterClass="user ">    
 <![CDATA[
 INSERT   INTO   T_USER   (name, sex) VALUES   (#name#,#sex#)  
 ]]>    
 <selectKey resultClass="int" keyProperty="id" type="post">    
 <![CDATA[
 SELECT @@IDENTITY AS ID 
 ]]> 
 <!-- 该方法不安全 应当用SCOPE_IDENTITY() 但这个函数属于域函数,需要在一个语句块中执行。 -->  
 </selectKey>    
 </insert> 
 
 <!-- Microsoft SQL Server IDENTITY Column 改进-->    
 <insert id="insertUser-MS-SQL" parameterClass="user">    
 <selectKey resultClass="int" keyProperty="id">    
 <![CDATA[
 INSERT   INTO   T_USER   (name, sex) VALUES   (#name#,#sex#)   
    SELECT SCOPE_IDENTITY() AS ID 
 ]]>  
 </selectKey>    
 </insert> 
----------------------------------------------------------------------------------------------------------------------------

以sql server为例,举个实例:

配置文件中:

<insert id="saveProject" parameterClass="ProjectVO" >
  <selectKey resultClass="java.lang.Integer" keyProperty="projectId">  
  <![CDATA[
  insert into PROJECT(projectName,description)
  values(#projectName#,#description#) 
  SELECT SCOPE_IDENTITY() AS projectId
  ]]>
 </selectKey>
 </insert> 

 

DaoImpl中代码:

 public Integer saveProject(ProjectVO projectVO){
  return (Integer)getSqlMapClientTemplate().insert("commonMap.saveProject", projectVO);
 }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值