与Oracle有所不同,ibatis中实现获取mysql自增序列值

xml文件中关键代码:
  1. <!-- 添加用户,获取自动增长的序列号,处理添加相同的userId情况 -->
  2. <insert id="insertUserBySequence" parameterClass = "User" >
  3. <selectKey resultClass = "int" keyProperty="userId" >
  4. SELECT @@IDENTITY as userId
  5. </selectKey>
  6. insert into user(userId,userName,userPassword,userFlag)
  7. values(#userId#,#userName#,#userPassword#,#userFlag#);
  8. </insert>

IUserDAOImpl中代码:

  1. //添加用户,获取自动增长的序列号,处理添加相同的userId情况
  2.     public void addUserBySequence(User user)
  3.     {
  4.         try
  5.         {
  6.             sqlMapClient.insert("insertUserBySequence",user);
  7.         } catch (SQLException e)
  8.         {
  9.             // TODO Auto-generated catch block
  10.             e.printStackTrace();
  11.         }
  12.     }

 

main中测试:

  1. //7.测试addUserBySequence(User user)
  2.         System.out.println("/n7.测试addUserBySequence(User user)");
  3.         User user7 = new User();
  4.         user7.setUserId(100);
  5.         user7.setUserName("good");
  6.         user7.setUserPassword("123456");
  7.         user7.setUserFlag("test");
  8.         
  9.         iUserDAOImpl.addUserBySequence(user7);
  10.         
  11.         for(User user8:iUserDAOImpl.queryAllUser())
  12.         {
  13.             System.out.println(user8);
  14.             
  15.         }

 

总的来说,关键在于SELECT @@IDENTITY 这句SQL语句,就是获取当前自动增长的序列号的。

注意如果使用的数据库是Oracle,与MySql是不同的,相应的SQL语句也不同。

 

参考过http://blog.163.com/xinu_com/blog/static/141587520082292215628/这篇文章

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值