A JDBC-ben miért a connection objektumtól kérjük a meta-adatot, s miért nem a statement objektumtól?

0 értékelés
45 megtekintés
romulan (4 pont) kérdezte Már 13.
Van-e valami magyarázata annak, hogy a meta-adatokat a connection objektumon keresztül kérjük és kapjuk, nem pedig a statement objektumon keresztül?

A SanFranciscobol Jottem YouTube kurzus "JDBC 4. Create Statement a teherautó" részében jön elő ez a kérdés, ahol a konstruktorban előbb megalkotásra kerül egy createStatement, de a meta-adatot mégsem azon keresztül kérdezzük le, hanem a connection objektumon keresztül, valahogy így:

        ...

        DatabaseMetaData dbmd = null;
        try {
            dbmd=conn.getMetaData ();
        } catch (SQLException ex) {...

Mindenhol azt olvasom, hogy a query-k a satement-eken keresztül hajtódnak végre, s nem igazán értem a logikáját a kapcsolaton keresztül történő lekérdezésnek.

Van ennek valami magyarázata, vagy ez egyszerűen csak így van, és kész?

1 Válasz

0 értékelés
Krisz Guru (1,938 pont) válaszolta meg Már 13.
romulan kiválasztva Már 14.
 
Legjobb válasz
A query egy lekerdezes, ami tarolt adatokat (vagy kalkulaciokat) ad vissza az adatbazisbol, a meta adatok pedig magarol az adatbazisrol adnak informaciokat, pl. hany tabla van letrehozva, mi a merete, stb...
 Van olyan adatbazis rendszer, ahol queryn keresztul is lekerdezhetsz meta adatokat, de ugyanaz a query nem fog mukodni nagy valoszinuseggel masik adatbazis rendszer eseten. Egy Oracle, egy Derby meg egy PostgreSQL, stb. mind elter valamelyest ebben is.

 Ha viszont az erre hivatott elkeszitett objektumon keresztul kerdezed le a meta adatokat, az mindegyik RDBMS-el mukodni fog.
...