Uporaba objektov ResultSet

Uporaba objektov ResultSet

Če ne poznamo točne strukture tabel (sheme) v ResultSet, jo lahko dobimo preko objekta ResultSetMetaData.

ResultSetMetaData rsmd = rs.getMetaData() ;
int colCount = rsmd.getColumnCount() ;
 
for (int i = 1 ; i <= colCount ; i++) {
        if (i > 1) out.print(", ");
        out.print(rsmd.getColumnLabel(i)) ;
}
out.println() ;

Ko dobimo objekt ResultSet , lahko iz njega dobimo njegove vrstice oziroma polja v njegovih vrsticah:

while (rs.next()) {
        for (int i = 1 ; i <= colCount ; i++) {
               if (i > 1) out.print(", ");
               out.print(rs.getObject(i)) ;
        }
        out.println() ;
}

Stolpce začnemo štedi od 1 dalje in ne od 0, kot je sicer navada pri poljih v Javi. Lahko pa uporabimo metodo getObject na objektu ResultSet . Ta metoda sprejme kot argument ime stolpca. Na voljo imamo tudi metode tipa getxxx , v katerih namesto številke stolpca navedemo kot argument ime stolpca. Zato lahko zgornjo kodo zapišemo tudi tako:

while (rs.next()) {
        out.println(   rs.getObject("CustomerID")       + ", " +
                       rs.getObject("CustomerFirstName") + ", " +
                       rs.getObject("CustomerLastName")  + ", " +
                       rs.getObject("CustomerAddress") ) ;
}

Namesto metode getObject lahko uporabimo bolj specifične metode, kot na primer getInt, getString, itd. Vendar ima njihova uporaba tudi pomanjkljivost. Če je tip polja primitiven, kot na primer int, float itd., in če je v podatkovni bazi vrednost tega polja prazna, metoda ne zna vrniti nekaj, po čemer bi to ločili od normalne vrednosti. Če pa uporabimo metodo getObject in če je polje prazno, dobimo vrednost »null.