gpt4 book ai didi

java - 如何使用 java 或 jdbcTemplate 从 Postgres 获取二维数组

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

当我在控制台执行这样的代码时

SELECT dimensions FROM public."NEWS" WHERE id = 5

我明白了:(整数数组)

{{2560,1707},{2560,1707},{720,960},{1200,1600}}

但是当我用java写代码的时候

ArrayList<String[][]> dimensions = new ArrayList<>();
try {
PreparedStatement ps =
dataSource.getConnection().prepareStatement(
"SELECT dimensions::varchar[][] FROM public.\"NEWS\" WHERE id = "+id+";");
ResultSet rs = ps.executeQuery();
while(rs.next()) {
dimensions.add((String[][]) rs.getArray(1).getArray());
}
} catch (SQLException ignored) {}

我在线上遇到 NullPointerException:dimensions.add((String[][]) rs.getArray(1).getArray());

如何使用 Spring Framework 中的 java 或 jdbcTemlate 从 Postgre 获取二维数组?

最佳答案

遵循 8.15. Arrays 处的代码,这段代码似乎工作得很好:

Class.forName("org.postgresql.Driver");

Connection connection = DriverManager.getConnection(
"jdbc:postgresql://127.0.0.1:5432/testdb",
"testdb",
"testdb");

ResultSet rs = connection.prepareStatement("SELECT * FROM sal_emp").executeQuery();

rs.next();

java.sql.Array a1 = rs.getArray(2);
Integer[] o1 = (Integer[])a1.getArray();

java.sql.Array a2 = rs.getArray(3);
String[][] o2 = (String[][])a2.getArray();

关于java - 如何使用 java 或 jdbcTemplate 从 Postgres 获取二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45334284/

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