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中代码:
- //添加用户,获取自动增长的序列号,处理添加相同的userId情况
- public void addUserBySequence(User user)
- {
- try
- {
- sqlMapClient.insert("insertUserBySequence",user);
- } catch (SQLException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
main中测试:
- //7.测试addUserBySequence(User user)
- System.out.println("/n7.测试addUserBySequence(User user)");
- User user7 = new User();
- user7.setUserId(100);
- user7.setUserName("good");
- user7.setUserPassword("123456");
- user7.setUserFlag("test");
- iUserDAOImpl.addUserBySequence(user7);
- for(User user8:iUserDAOImpl.queryAllUser())
- {
- System.out.println(user8);
- }
总的来说,关键在于SELECT @@IDENTITY 这句SQL语句,就是获取当前自动增长的序列号的。
注意如果使用的数据库是Oracle,与MySql是不同的,相应的SQL语句也不同。
参考过http://blog.163.com/xinu_com/blog/static/141587520082292215628/这篇文章