Convert a Result Set from SQL Array to Array of Strings
I am querying the information_schema.columns
table in my PostgreSQL database. Using a table name, the result set finds all the column names, type, and whether it is nullable (except for the primary key, 'id'). This is the query being used:
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;
I have a string array for each of these results and I am trying to use the ResultSet method getArray(String columnLabel)
to avoid looping through the results. I want to store the returned Arrays in the string arrays, but get a type mismatch error
Type mismatch: cannot convert from Array to String[]
Is there a way to convert or typecast the SQL Array object to a String[]?
Relevant Code:
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();
}
Use:
Array a = rs.getArray("is_nullable");
String[] nullable = (String[])a.getArray();
As explained here
Array
is SQL type, getArray()
returns an object to cast to java array.
Generalize the Array to Object
Object[] type; //this is generic can use String[] directly
Array rsArray;
rsArray = rs.getArray("data_type");
type = (Object [])rsArray.getArray();
Use it loop as string:
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/74416.html
上一篇: JDBC,DBCP和SQL Server“超出锁定请求超时期限”
下一篇: 将结果集从SQL数组转换为字符串数组