sql >> Databáze >  >> RDS >> PostgreSQL

Jak se na jaře dotazovat na postgresové celočíselné pole

Můžete použít java.sql.Array .

Pokud chcete získat pouze celočíselné pole, můžete to zkusit takto (funguje to, pokud výsledek obsahuje jeden řádek):

String SQL = "select item_list from public.items where item_id=1";
Array l = template.queryForObject(SQL, Array.class);
List<Integer> list = Arrays.asList((Integer[]) l.getArray());

Nebo použijte RowMapper

Foo foo = template.queryForObject(SQL, new RowMapper<Foo>(){
        @Override
        public Foo mapRow(ResultSet rs, int rowNum) throws SQLException {
            Foo foo = new Foo();
            foo.setName(rs.getString("name"));
            foo.setIntegers(Arrays.asList((Integer[]) rs.getArray("item_list").getArray()));
            return foo;
        }
    });

Třída Foo:

class Foo {
    private String name;
    private List<Integer> integers;

    public String getName() {
        return name;
    }
    // ...
}


  1. Postgres 9.4:Zahrňte sourozenecký sloupec do každého výsledku pole jsonb

  2. implicitní vnitřní spojení – jsou si rovny?

  3. Operátor SQLite UNION

  4. Vypočítejte percentil z aktuálnosti v MySQL