Created by
Lars
last modified
| /**
* Datenbankresultset in Row-Objekt umwandeln
* @param result Datenbankresultset
* @return Row
*/
public Row resultSetToRow(ResultSet result)
{
Row row = null;
try
{
int columns = result.getMetaData().getColumnCount();
// Row mit Anzahl der Spalten vorbelegen
row = new Row(columns);
// Felder im ResultSet beginnen mit 1
for (int i = 1; i <= columns; i++)
{
// Felder in der Row-ArrayList beginnen mit 0
row.setColumnContent(i - 1, result.getObject(i));
}
}
catch (SQLException e)
{
handleSqlException(e);
}
return row;
}
/**
* Datenbankabfrage durchführen und Ergebnis als Row-Objekte zurückgeben
* @param prepQueryStmt Abfrage als PreparedStatement
* @return Rows
*/
public ArrayList<Row> executeQuery(PreparedStatement prepQueryStmt)
{
ResultSet result;
ArrayList<Row> rows = new ArrayList<>();
try
{
// Ergebnis abholen
result = prepQueryStmt.executeQuery();
while (result.next())
{
rows.add(resultSetToRow(result));
}
}
catch (SQLException excp)
{
handleSqlException(excp);
}
finally
{
try
{
prepQueryStmt.close();
}
catch (SQLException excp)
{
handleSqlException(excp);
}
}
// Bei leerem ResultSet wird NULL zurueckgegeben - bei direktem Lesen
// muesste rows.get(0) sonst umstaendlich durch den Arufrufer gecatcht
// werden)
if (rows.isEmpty())
{
return null;
}
return rows;
}
|