convert arraylist to array java
Convertir un conjunto de resultados de la matriz SQL a una matriz de cadenas (4)
Cómo establecer una propiedad ArrayList desde una matriz SQL:
Array a = rs.getArray("col"); // smallint[] column
if (a != null) {
yourObject.setListProperty(Arrays.asList((Integer[]) a.getArray()));
}
Estoy consultando la tabla information_schema.columns
en mi base de datos PostgreSQL. Usando un nombre de tabla, el conjunto de resultados encuentra todos los nombres de columna, el tipo y si es anulable (excepto la clave principal, ''id''). Esta es la consulta que se está utilizando:
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;
Tengo una matriz de cadenas para cada uno de estos resultados y estoy tratando de usar el método ResultSet getArray(String columnLabel)
para evitar la getArray(String columnLabel)
los resultados. Quiero almacenar las matrices devueltas en las matrices de cadenas, pero aparece un error de falta de coincidencia de tipo
Type mismatch: cannot convert from Array to String[]
¿Hay alguna forma de convertir o encasillar el objeto de la matriz de SQL en una cadena []?
Código Relevante:
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();
}
Generalizar la matriz al objeto
Object[] type; //this is generic can use String[] directly
Array rsArray;
rsArray = rs.getArray("data_type");
type = (Object [])rsArray.getArray();
Úsalo como una cadena:
type[i].toString();
Utilizar:
Array a = rs.getArray("is_nullable");
String[] nullable = (String[])a.getArray();
Como se explica here
Array
es de tipo SQL, getArray()
devuelve un objeto para convertirlo en una matriz java.
esto puede ser útil
Object[] balance = (Object[]) ((Array) attributes[29]).getArray();
for (Object bal : balance) {
Object [] balObj =(Object[]) ((Array) bal).getArray();
for(Object obj : balObj){
Struct s= (Struct)obj;
if(s != null ){
String [] str = (String[]) s.getAttributes();
System.out.println(str);
}
}
}