DB2中的DB2返回键无法正常工作

时间:2017-06-27 09:17:54

标签: jdbc db2 db2-luw

我在DB2数据库(版本10.1)中插入带有jdbc的行时返回生成的密钥时出现问题。我尝试了几种方法,但没有人工作正常。

方法1:

stmt = con.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);

执行此行时,我收到此异常:

  

com.ibm.db2.jcc.am.SqlSyntaxErrorException:ILLEGAL SYMBOL""。一些可能是法律的符号是: 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);
}

pkMapper.getPkFieldNames()返回带有PK列名称的字符串数组。执行stmt.setObject(i+1, param);时,我得到这样的例外:

  

com.ibm.db2.jcc.am.SqlSyntaxErrorException:ILLEGAL SYMBOL&#34;&#34;。一些可能是法律的符号是: SQLCODE = -104,SQLSTATE = 42601,DRIVER = 3.61.75

方法3:

stmt = con.prepareStatement(query);

使用此表单,插入执行正常,但不会返回stmt.getGeneratedKeys();

的键

有没有人知道发生了什么?

0 个答案:

没有答案