我正在尝试获取新插入记录的主键(这是一个标识字段) 代码段如下
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语句。
我使用的是sqljdbc4 jar,SQL版本是SQL server 2008。 请帮助解决这个问题。谢谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
将主键列名称作为参数传递给方法PrepareStatement
prepareStatement(String sql,String [] columnNames);
使用上面的语法来获得生成密钥
的预处理 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);
}