您的位置:首页 > 数据库 > Oracle

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

2008-09-16 13:38 555 查看
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/这篇文章
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: