`
kang
  • 浏览: 465892 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ibatis中实现获取mysql自增序列值

阅读更多

说明:本文转自http://blog.csdn.net/elifefly/archive/2008/09/16/2936070.aspx

 

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

新一篇: 根据传智播客ibatis视频教程编写的入门例子  | 旧一篇: ibatis-2.3.3.720的simple_example

xml文件中关键代码:
<!-- 添加用户,获取自动增长的序列号,处理添加相同的userId情况 -->
<insert id = "insertUserBySequence" parameterClass = "User">

<selectKey resultClass = "int" keyProperty = "userId">
SELECT @@IDENTITY as userId
</selectKey>


insert into user(userId,userName,userPassword,userFlag)
values(#userId#,#userName#,#userPassword#,#userFlag#);
</ 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.
  13.     }
 

 

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/ 这篇文章

 

 

 

 

发表于 @ 2008年09月16日 13:38:00 |评论(0 <script type="text/javascript">AddFeedbackCountStack("2936070")</script> ) |收藏

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics