在Java Prepared Statement中使用DB2 Sequence

时间:2014-12-30 19:41:00

标签: java jdbc db2

如果预备文件中的占位符为db2,我想获取0序列的下一个值。我怎样才能做到这一点 。

PreparedStmt.setLong(1, attributeID);

所以,如果attributeID0,我想从序列中获取下一个值,另外我使用属性ID。

我尝试使用

PreparedStmt.setObject(1, attributeID > 0 ? attributeID : next val for my seq);

但这不起作用!

2 个答案:

答案 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中的主键列,并且不要在预准备语句中设置其值。