dev2dev 首页 > 资源中心 > 专家Blog > 专家Blog文章
用JDBCCONTROL检索生成的键
在用自动生成的键(例如主键)在表中进行插入时,常常希望马上获得这个键并在代码中使用。从JDK 1.4开始,Statement类有一个getGeneratedKeys()方法(以及用来指定列的相关方法)。但是如果要使用JdbcControl,那么会怎么样?在这种情况下,无法访问Statement类。
可以将这种功能集成到JdbcControl中。
需要做的只是将@JdbcControl.SQL的getGeneratedKeys属性设置为true。然后,使方法的返回类型与表中列的类型匹配,这样JdbcControl就会自动地返回生成的值。
我们来看一个例子:
@JdbcControl.SQL(
statement="INSERT INTO customer (name) VALUES ({name})",
getGeneratedKeys=true)
public long insertCustomer(String name);
如果没有设置getGeneratedKeys属性,在正常情况下这会返回受影响的行数。但是,如果设置了这个属性,而且customer表中有一个自动生成的列,那么就会返回生成的键。
如果希望进一步控制这个行为,还可以将返回类型设置为ResultSet并对返回的结果集进行遍历,从而手工地获取生成的键。在这种情况下,由您负责关闭结果集。
(感谢Chad Schoettger提供了必要的提示)
原文出处:http://dev2dev.bea.com/blog/hogue/archive/2006/10/retrieving_gene.html
作者其它文章
|