使用JDBC获取SQL自动增长的ID

在项目开发中,遇到一个问题,先添加一条记录然后想立刻获取这条记录的ID值,ID由SQLServer自动增长的,如果先插入再查询的话,需要另外执行一条查询ID的SQL语句,因此有了下面的方法:

1、使用SQLServer自带的identity功能:

sql="insert into dbo.OBDCustomer values(?,?,?,?,?,?) select @@IDENTITY as ID";

2、要执行这条语句,应该是查询,而不是更新,因此需要调用executeQuery()方法

3、执行时候遇到问题了,提示这个方法没有返回结果集,网上找了一下办法,在前面加上SET NOCOUNT ON:

sql="SET NOCOUNT ON insert into dbo.OBDCustomer values(?,?,?,?,?,?) select @@IDENTITY as ID";

4、再次执行,成功返回ID值

 

 

备注:

网上还有其他方法,例如通过statement来获取、存储过程来获取等等,个人觉得上面这个identity方法是比较简单的,不知道其他数据库是否支持。。

 

posted on 2015-07-01 09:29  SPEqwerty  阅读(2367)  评论(0编辑  收藏  举报

导航