Java 尝试获取新插入行的id时发生异常
我正在尝试获取新插入记录的主键(这是一个标识字段) 代码片段如下所示Java 尝试获取新插入行的id时发生异常,java,sql-server-2008,jdbc,Java,Sql Server 2008,Jdbc,我正在尝试获取新插入记录的主键(这是一个标识字段) 代码片段如下所示 jdbcConnection=new JdbcConnection(); connection=jdbcConnection.getJdbcConnection(); psmt=connection.prepareStatement("{call spCopyRecord(?)}",Statement.RETURN_GENERATED_KEYS); psmt.setInt(1, primarykey); i
jdbcConnection=new JdbcConnection();
connection=jdbcConnection.getJdbcConnection();
psmt=connection.prepareStatement("{call spCopyRecord(?)}",Statement.RETURN_GENERATED_KEYS);
psmt.setInt(1, primarykey);
int status=psmt.executeUpdate();
ResultSet generatedKeys=psmt.getGeneratedKeys();
if(generatedKeys != null &&generatedKeys.next()){
newKey=generatedKeys.getInt(1);
}
当我尝试执行时,会出现异常:
com.microsoft.sqlserver.jdbc.SQLServerException:已生成更新的结果集。
它指向executeUpdate语句
我使用的是SQLJDBC4JAR,SQL版本是SQLServer2008。
请帮助解决此问题。请提前感谢。您正在使用:
int status=psmt.executeUpdate();
这不是一个普通的Select查询吗
使用或将主键列名作为参数传递给方法PrepareStatement prepareStatement(字符串sql,字符串[]列名称) 使用上面的语法获取preparestatement,它提供生成的密钥
jdbcConnection=new JdbcConnection();
connection=jdbcConnection.getJdbcConnection();
psmt=connection.prepareStatement("INSERT QUERY",String[] UR_PRIMARY_KEY_COLUMN_NMAE);
psmt.setInt(1, "params");
int status=psmt.executeUpdate();
ResultSet generatedKeys=psmt.getGeneratedKeys();
while(generatedKeys.next())
{
String id = rs.getString(1);
}
我认为您需要的是
.executeQuery()
?我认为执行存储过程与getGeneratedKeys()
结合使用是不受支持的……谢谢您的回复。我得到com.microsoft.sqlserver.jdbc.SQLServerException:必须先执行该语句,然后才能获得任何结果。对于execute()和executeQuery():(