Jdbc DB2在insert中返回键不起作用

Jdbc DB2在insert中返回键不起作用,jdbc,db2,db2-luw,Jdbc,Db2,Db2 Luw,在DB2数据库(版本10.1)中插入带有jdbc的行时,返回生成的键时出现问题。我试过几种方法,但没有一种效果很好 方法1: stmt = con.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); 执行此行时,我得到以下异常: com.ibm.db2.jcc.am.SqlSyntaxErrorException:非法符号“”。某些可能合法的符号为:。SQLCODE=-104,SQLSTATE=42601,DRIVER=3.61.

在DB2数据库(版本10.1)中插入带有jdbc的行时,返回生成的键时出现问题。我试过几种方法,但没有一种效果很好

方法1:

stmt = con.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
执行此行时,我得到以下异常:

com.ibm.db2.jcc.am.SqlSyntaxErrorException:非法符号“”。某些可能合法的符号为:。SQLCODE=-104,SQLSTATE=42601,DRIVER=3.61.75

方法2:

stmt = con.prepareStatement(query, pkMapper.getPkFieldNames());
List<Object> params = getInsertParams(object, pkMapper);
for (int i = 0; i < params.size(); i++) {
    Object param = params.get(i);
    stmt.setObject(i+1, param);
}
使用此表单,可以很好地执行insert,但不会使用
stmt.getGeneratedKeys()返回任何键


有人知道发生了什么吗?

你确定你的数据库是v吗。10.1? 根据JDBC驱动程序版本3.61.75属于v9.7补丁包3a。如果您的数据库是10.1,请尝试将JDBC驱动程序更新为匹配的版本?消息看起来像来自z/OS上的DB2。是的,它是z/OS上的DB2。我不能改变jdbc驱动程序。。。
stmt = con.prepareStatement(query);