gpt4 book ai didi

java - 如何在 spring 中查询 postgres 整数数组

转载 作者:行者123 更新时间:2023-11-29 12:42:01 25 4
gpt4 key购买 nike

我正在使用 Java 7 和 JDBC 模板从 PostgreSQL 查询整数数组。我的代码如下:

@Autowired
private JdbcTemplate jdbcTemp;

String SQL = "select item_list from public.items where item_id=1";
List<Integer> ListOfitems=jdbcTemp.queryForList(SQL , Integer.class);

我的 item_list 列在 PostgreSQL 中是 integer[]。但是当我这样尝试时,它会抛出一个错误:

Bad value for type int psql exception

我也试过:

List<List<Integer>> ListOfitems=jdbcTemp.queryForList(SQL , Integer.class);

但它仍然抛出相同的异常。

感谢任何帮助。

最佳答案

您可以使用 java.sql.Array .

如果你只想得到整数数组,你可以这样尝试(如果结果包含一行,它就有效):

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());

或者使用 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;
}
});

Foo 类:

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

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

关于java - 如何在 spring 中查询 postgres 整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45427306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com