如何在Postgres数据库中读/写一个布尔数组?

时间:2013-12-06 09:45:57

标签: java sql arrays jdbc jdbc-postgres

我有一个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[]的转换。想法,最佳实践?

0 个答案:

没有答案