java - 将结果集从 SQL 数组转换为字符串数组

标签 java arrays postgresql jdbc resultset

我正在查询 PostgreSQL 数据库中的 information_schema.columns 表。使用表名,结果集会查找所有列名、类型以及是否可以为空(主键“id”除外)。这是正在使用的查询:

SELECT column_name, is_nullable,data_type FROM information_schema.columns
WHERE lower(table_name) = lower('TABLE1') AND column_name != 'id'
ORDER BY ordinal_position;

我对每个结果都有一个字符串数组,我正在尝试使用 ResultSet 方法 getArray(String columnLabel)避免循环遍历结果。我想将返回的数组存储在字符串数组中,但出现类型不匹配错误

Type mismatch: cannot convert from Array to String[]

有没有办法将 SQL Array 对象转换或类型转换为 String[]?

相关代码:

String[] columnName, type, nullable;

//Get Field Names, Type, & Nullability 
String query = "SELECT column_name, is_nullable,data_type FROM information_schema.columns "
        + "WHERE lower(table_name) = lower('"+tableName+"') AND column_name != 'id' "
        + "ORDER BY ordinal_position";

try{
    ResultSet rs = Query.executeQueryWithRS(c, query);
    columnName = rs.getArray(rs.getArray("column_name"));
    type = rs.getArray("data_type");
    nullable = rs.getArray("is_nullable");
}catch (Exception e) {
    e.printStackTrace();
}

最佳答案

用途:

Array a = rs.getArray("is_nullable");
String[] nullable = (String[])a.getArray();

如解释 here

Array 是 SQL 类型,getArray() 返回一个对象转换为 java 数组。

关于java - 将结果集从 SQL 数组转换为字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14935016/

相关文章:

java - 如何在基于 2D 方 block 的游戏中获得方 block ?

java - Google Cloud App Engine cron 作业 - 不调用服务

java - Java 可以帮助我避免 equals() 中的样板代码吗?

c - 传递字符串数组并对它们进行排序(在 C 中)

java - 将 postgresql 驱动程序与 Maven 结合使用

postgresql 打开连接并执行多个命令

python - 在 sqlalchemy 查询中使用 for 循环

java - Spring Mongo Query,删除集合匹配列表中的对象

java - 基于 Java 8 中的 LocalDate.now() 获取一周的第一天的日期

arrays - 在 Fortran 中将指针分配给可分配的派生类型组件