我有一个postgres数据库,其中包含一个表格,其中包含一周中几天的布尔数组(t / f是否该员工必须在这一天工作)。
表格如下:
CREATE TABLE employee(
...,
weekdays BOOLEAN[7],
...
);
在我的Java servlet中,我想使用boolean[]
(基本类型)读取和写入数组。我发现它应该与java.sql.Array
对象一起使用。
插入不适用于以下内容:
Connection dbcon = DataSource.checkOut();
preparedStatement pstatement = dbcon.prepareStatement("INSERT INTO employee (weekdays) VALUES (?)");
pstatement.setArray(1, dbcon.createArrayOf("BOOLEAN", castToObjectType( objectToInsert.getWorkingdays() ).toArray() ) );
...
private ArrayList<Boolean> castToObjectType(boolean[] valueArray){
ArrayList<Boolean> objArray = new ArrayList<Boolean>();
for (int i = 0; i < valueArray.length; i++) {
objArray.add( new Boolean(valueArray[i]) );
}
return objArray;
}
我收到org.postgresql.util.PSQLException: Unable to find server array type for provided name BOOLEAN
例外。
我也在某种程度上坚持从java.sql.Array到boolean[]
的转换。想法,最佳实践?