Snippets

Lars resultSetToRow

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;
    }

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.