我有一个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