我有一个Java枚举TradeStatus
,对应于交易记录表中定义的SQL类型。我希望能够将此类型与PreparedStatement
一起使用。通常我可以使用setString(int parameterIndex, String x)
函数设置值,但是当我想为状态设置null
值时,我的难度会产生。
setNull(int parameterIndex, int sqlType)
要求将JDBC SQL type列设置为null
。我不知道使用SQL枚举类型的类型。 如何将枚举类型的SQL列值设置为null
?
TradeStatus
定义public enum TradeStatus {
UNKNOWN("Unknown", true),
FINALIZE_TERMS("Finalize Terms", true),
PAYMENT_INFO("Payment Info", true),
SETTLEMENT("Settlement", true),
COMPLETED("Completed", false),
DEACTIVATED("Deactivated", false);
private String name;
private boolean isOutstanding;
TradeStatus(String name, boolean isOutstanding) {
this.name = name;
this.isOutstanding = isOutstanding;
}
public boolean getIsOutstanding() {
return isOutstanding;
}
@Override
public String toString() {
return name;
}
}
status
列定义CREATE TABLE traderecords (
...
status ENUM('Unknown', 'Finalize Terms', 'Payment Info', 'Settlement', 'Completed', 'Deactivated'),
...
);