如果预备文件中的占位符为db2
,我想获取0
序列的下一个值。我怎样才能做到这一点 。
PreparedStmt.setLong(1, attributeID);
所以,如果attributeID
是0
,我想从序列中获取下一个值,另外我使用属性ID。
我尝试使用
PreparedStmt.setObject(1, attributeID > 0 ? attributeID : next val for my seq);
但这不起作用!
答案 0 :(得分:1)
这很容易,只需获得序列,就像使用executeQuery()方法得到结果集一样。然后select语句是:
SELECT SEQ_NAME.NEXTVAL FROM SYSIBM.SYSDUMMY1
另一部分是句子。这就是你需要做的一切。
答案 1 :(得分:0)
您可以将主键列声明为
ATTRIBUTEID BIGINT GENERATED BY DEFAULT AS IDENTITY
要插入具有特定值的行, include sql中的主键列,并将其值设置为:
PreparedStmt.setLong(1, attributeID);
要插入数据库为key生成值的行,请省略sql中的主键列,并且不要在预准备语句中设置其值。