Bevezetés a Java JDBC RowSet felületébe

Java Top

Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:

>> ELLENŐRIZZE A FOLYAMATOT

1. Áttekintés

Ebben a cikkben áttekintjük a JDBC-t RowSet felület. Egy JDBC RowSet Az objektum táblázatos adatokat tartalmaz olyan stílusban, amely jobban alkalmazkodóvá és egyszerűbbé teszi az eredménykészletet.

Az Oracle ötöt definiált RowSet interfészek a RowSet:

  • JdbcRowSet
  • CachedRowSet
  • WebRowSet
  • JoinRowSet
  • FilteredRowSet

Ebben az oktatóanyagban áttekintjük ezek használatát RowSet interfészek.

2. JdbcRowSet

Kezdjük a JdbcRowSet - egyszerűen létrehozunk egyet az áthaladással Kapcsolat kifogásolja a JdbcRowSetImpl:

JdbcRowSet jdbcRS = new JdbcRowSetImpl (conn); jdbcRS.setType (ResultSet.TYPE_SCROLL_INSENSITIVE); String sql = "SELECT * FROM customers"; jdbcRS.setCommand (sql); jdbcRS.execute (); jdbcRS.addRowSetListener (új példaListener ()); míg (jdbcRS.next ()) {// minden következő hívás generál egy cursorMoved eseményt System.out.println ("id =" + jdbcRS.getString (1)); System.out.println ("név =" + jdbcRS.getString (2)); }

A fenti példában jdbcRs nem tartalmazott adatokat, amíg meg nem határoztuk az SQL utasítást a módszerrel setCommand majd lefuttatta a módszert végrehajtani.

Figyelje meg azt is, hogy az eseménykezelés elvégzése érdekében a RowSetListener ba,-be JdbcRowSet.

JdbcRowSet más, mint a másik négy RowSet megvalósítások - mert mindig kapcsolódik az adatbázishoz és emiatt hasonlít leginkább a ResultSet tárgy.

3. CachedRowSet

A CachedRowSet az objektum egyedi, mert anélkül is működhet, hogy csatlakozna az adatforrásához. Ezt hívjuk „leválasztottnak RowSet tárgy".

CachedRowSet nevét annak a ténynek köszönheti, hogy tárolja adatait a memóriában, hogy az adatbázisban tárolt adatok helyett saját adataival működjön.

Mint CachedRowSet interfész a szuper interfész az összes leválasztott RowSet objektumhoz, az alább áttekintett kód az a-ra is vonatkozik WebRowSet, JoinRowSet, vagy FilteredRowSet ugyanolyan jól:

CachedRowSet crs = new CachedRowSetImpl (); crs.setUsername (felhasználónév); crs.setPassword (jelszó); crs.setUrl (url); crs.setCommand (sql); crs.execute (); crs.addRowSetListener (új példaListener ()); while (crs.next ()) {if (crs.getInt ("id") == 1) {System.out.println ("A CRS megtalálta az 1. ügyfelet, és eltávolítja a rekordot."); crs.deleteRow (); szünet; }}

4. WebRowSet

Ezután vessünk egy pillantást a WebRowSet.

Ez azért is egyedülálló, mert amellett, hogy felajánlja a CachedRowSet tárgy, be tudja írni magát egy XML dokumentumbat, és el is tudja olvasni azt az XML dokumentumot, hogy visszaalakítsa magát a-vá WebRowSet:

WebRowSet wrs = új WebRowSetImpl (); wrs.setUsername (felhasználónév); wrs.setPassword (jelszó); wrs.setUrl (url); wrs.setCommand (sql); wrs.execute (); FileOutputStream ostream = új FileOutputStream ("customers.xml"); wrs.writeXml (ostream);

Használni a writeXml módszerrel megírjuk az a aktuális állapotát WebRowSet objektum egy XML dokumentum ellen.

A writeXml módszer an OutputStream objektum, karakterek helyett bájtban írunk, ami nagyon hasznos lehet az adatok minden formájának kezelésében.

5. JoinRowSet

JoinRowSet hozzunk létre egy SQL-t CSATLAKOZIK között RowSet objektumok, amikor ezek a memóriában vannak. Ez azért jelentős, mert megtakarít bennünket egy vagy több kapcsolat létrehozásának szükségességéből:

CachedRowSetImpl ügyfelek = new CachedRowSetImpl (); // a CachedRowSet beállításainak konfigurálása CachedRowSetImpl Associates = new CachedRowSetImpl (); // a CachedRowSet beállításainak konfigurálása JoinRowSet jrs = new JoinRowSetImpl (); jrs.addRowSet (ügyfelek, azonosító); jrs.addRowSet (munkatársak, azonosító);

Mert mindegyik RowSet objektum hozzáadva a JoinRowSet objektumnak egyezési oszlopra van szüksége, arra az oszlopra, amelyen az SQL CSATLAKOZIK alapul, meghatározzuk „Id” ban,-ben addRowSet módszer.

Ne feledje, hogy az oszlop neve helyett az oszlop számát is használhattuk volna.

6. FilteredRowSet

Végül a FilteredRowSetlevághatjuk a látható sorok számát a RowSet objektumot, hogy csak azokkal az adatokkal dolgozhassunk, amelyek relevánsak a tevékenységünk szempontjából.

Döntenünk kell arról, hogy miként akarjuk „szűrni” az adatokat a Állítmány felület:

public class FilterExample megvalósítja a Predicate {private Pattern pattern; public FilterExample (String regexQuery) {if (regexQuery! = null &&! regexQuery.isEmpty ()) {pattern = Pattern.compile (regexQuery); }} nyilvános logikai érték (RowSet rs) {try {if (! rs.isAfterLast ()) {String name = rs.getString ("name"); System.out.println (String.format ("A"% s "minta keresése% s-ben, pattern.toString (), név)); Matcher matcher = minta.matcher (név); return matcher.matches (); } else return false; } catch (e kivétel) {e.printStackTrace (); return false; }} // módszerek a hibák kezelésére}

Most ezt a szűrőt alkalmazzuk a FilteredRowSet tárgy:

RowSetFactory rsf = RowSetProvider.newFactory (); FilteredRowSet frs = rsf.createFilteredRowSet (); frs.setCommand ("select * from customers"); frs.execute (conn); frs.setFilter (új FilterExample ("^ [A-C]. *")); ResultSetMetaData rsmd = frs.getMetaData (); int oszlopszám = rsmd.getColumnCount (); while (frs.next ()) {for (int i = 1; i <= oszlopszám; i ++) {System.out.println (rsmd.getColumnLabel (i) + "=" + frs.getObject (i) + "" ); }}

7. Következtetés

Ez a gyors bemutató a RowSet interfész elérhető a JDK-ban.

Megbeszéltük az egyes megvalósítások konfigurációját, és megemlítettük a közöttük lévő különbségeket.

Mint rámutattunk, csak az egyik RowSet megvalósítások kapcsolódnak RowSet tárgy - az JdbcRowSet. A másik négyet leválasztják RowSet tárgyakat.

És mint mindig, a cikk teljes kódja megtalálható a Github oldalon.

Java alsó

Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:

>> ELLENŐRIZZE A FOLYAMATOT

$config[zx-auto] not found$config[zx-overlay] not found