Jdbc DB2在insert中返回键不起作用
在DB2数据库(版本10.1)中插入带有jdbc的行时,返回生成的键时出现问题。我试过几种方法,但没有一种效果很好 方法1: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.
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);