我有一個Java枚舉:使用PreparedStatement以保持Java的枚舉的數組Postgres的枚舉數組
public enum Equipment { Hood, Blinkers, ToungTie, CheekPieces, Visor, EyeShield, None;}
和相應的Postgres的枚舉:
CREATE TYPE equipment AS ENUM ('Hood', 'Blinkers', 'ToungTie', 'CheekPieces', 'Visor', 'EyeShield', 'None');
在我的數據庫中,我有一個列有一列包含「設備」項目的列表:
CREATE TABLE "Entry" (
id bigint NOT NULL DEFAULT nextval('seq'::regclass),
"date" character(10) NOT NULL,
equipment equipment[]
);
最後當我ru在我的應用程序中,我有一組「設備」枚舉,我想使用Prepared Statement將其保存到數據庫中,而對於我的生活,我無法弄清楚如何去做。
StringBuffer sb = new StringBuffer("insert into \"Entry\" ");
sb.append("(\"date\", \"equipment \")");
sb.append(" values (?, ?)");
PreparedStatement ps = db.prepareStatement(sb.toString());
ps.setString("2010-10-10");
ps.set???????????
只需回答下面的一些評論。這個例子只是說明性的,而不是我正在使用的確切代碼。我知道日期可能是非法的列名稱,並沒有真正想到,當我設置示例:) 我會正常化,但想要如果工作與一個枚舉數組是可能的。如果沒有某種類型的黑客,它聽起來不像它。 – McGin 2010-05-27 07:09:29