Statement 接口中有一个 execute(String sql, int autoGeneratedKeys) 方法。
autoGeneratedKeys有两两个可选值 Statement.NO_GENERATED_KEYS 和Statement.RETURN_GENERATED_KEYS 。
API这样解释:autoGeneratedKeys - 指示是否应该使用 getGeneratedKeys 方法使自动生成的键可用于获取的常量;
以下常量之一:Statement.RETURN_GENERATED_KEYS 或 Statement.NO_GENERATED_KEYS 。
我实在搞不清楚是什么意思。用一个实例说明最好,呵呵。
autoGeneratedKeys有两两个可选值 Statement.NO_GENERATED_KEYS 和Statement.RETURN_GENERATED_KEYS 。
API这样解释:autoGeneratedKeys - 指示是否应该使用 getGeneratedKeys 方法使自动生成的键可用于获取的常量;
以下常量之一:Statement.RETURN_GENERATED_KEYS 或 Statement.NO_GENERATED_KEYS 。
我实在搞不清楚是什么意思。用一个实例说明最好,呵呵。
解决方案 »
- 我想更新网站内容,用什么软件啊?新手
- 关于继承Object类的一个问题
- 在线等 java swing的一个物体移动问题
- scjp 很好的一道题(1)
- ssh 整合二级页面无法找到action错误求解
- 请问学习java线程有什么用啊,实际开发什么内容时会用到,还有很多人开发说jbuilder不好,吃内存,那么用eclipes,jcreate写按钮什么的还
- ----关于布局管理的问题--------
- 本人求sun one studio 放分
- 对CSDN关于修改密码的建议一点点,尽管CSDN对我进行了信誉上的剥夺
- 那些软件编写Java比较好,我是新手,请指教。
- 崩溃中……,我的四舍五入怎么总是无法平衡啊
- 怎么发有图片的简历???
http://wenda.sogou.com/question/28861587.html
这个我看了。
PreparedStatement pstat = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
如果我把它改成PreparedStatement pstat = conn.prepareStatement(sql,Statement.NO_GENERATED_KEYS);
然后我再 ResultSet rsKey = pstat.getGeneratedKeys();
rsKey.next();
int key = rsKey.getInt(1);
rsKey.close();
我依然能得到key的值,不知道为什么???
该常量指示生成的键可用于检索。
NO_GENERATED_KEYS
该常量指示生成的键不提供检索。下面是例子(from 互联网)
要确定任何所产生的关键字的值,只要简单地在语句的 execute() 方法中指定一个可选的标记,表示您有兴趣获取产生的值。您感兴趣的程度可以是 Statement.RETURN_GENERATED_KEYS,也可以是 Statement.NO_GENERATED_KEYS。在执行这条语句后,所产生的关键字的值就会通过从 Statement 的实例方法 getGeneratedKeys() 来检索 ResultSet 而获得,ResultSet 包含了每个所产生的关键字的列,下面的示例创建一个新的作者并返回对应的自动产生的关键字。
……
Statement stmt = conn.createStatement();
// Obtain the generated key that results from the query.
stmt.executeUpdate("INSERT INTO authors " +
"(first_name, last_name) " +
"VALUES (‘Ghq’, ‘Wxl’)",
Statement.RETURN_GENERATED_KEYS);
ResultSet rs = stmt.getGeneratedKeys();
if ( rs.next() ) {
// Retrieve the auto generated key(s).
int key = rs.getInt();
}