将结果集从SQL数组转换为字符串数组
我正在查询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数组对象转换或类型化为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();
如此处所述
Array
是SQL类型, getArray()
返回要转换为java数组的对象。
将数组泛化为对象
Object[] type; //this is generic can use String[] directly
Array rsArray;
rsArray = rs.getArray("data_type");
type = (Object [])rsArray.getArray();
使用它作为字符串的循环:
type[i].toString();
如何从SQL数组中设置ArrayList属性:
Array a = rs.getArray("col"); // smallint[] column
if (a != null) {
yourObject.setListProperty(Arrays.asList((Integer[]) a.getArray()));
}
链接地址: http://www.djcxy.com/p/74415.html
上一篇: Convert a Result Set from SQL Array to Array of Strings
下一篇: Accessing stored procedure's multiple result sets in Apache Camel