Az olvasás és írás tárgyak lob
Használata LOB LOB (Large Object Bynary) gyakran kell szentelnie. Ez annak köszönhető, hogy a tároló különböző fájlok adatbázistáblákban (DB). Azonnal felmerül a kérdés, hogy mit lehet tárolni egy adatbázis fájlt, ha majd meg kell tölteni azt újra formában a fájlt? Végtére is, akkor hozzon létre egy külön fájlok tárolására. A válasz egyszerű és triviális - a fájlok tárolása kívül szükség van, hogy megoldja replikációt és szinkronizációs problémák, a hozzáférési jogok és megteremti backup'a. Így, ha az ember nem nélkülözheti a LOB-objektumok, továbbra is választhatja meg - bináris (BLOB Binary Large Object) vagy karakteres különbözőképpen hívják (CLOB, TEXT) az adatbázisban a különböző szolgáltatók.
Megjegyzés. ha dolgozik, karakteres adatok figyelembe kell venni a kódolás. Ezt a kérdést kell figyelembe venni, amikor a szöveg beírása fájlt az asztalra, és kirakják az adatbázisból.
Leírás példa
A dokumentum ismerteti példát az olvasás és írás több típusú fájlokat BLOB mezőket, és CLOB (TEXT). Mivel az adatbázis szerver használták Oracle 10g Enterprise Edition, Oracle 10g Express Edition és a MySQL 5.1.
Példa Eclipse egy projekt, ami az összes elveit OOP (objektumorientált programozás) - öröklés, polimorfizmus és a beágyazás. A projekt felépítése látható a következő képen.
A könyvtárban «lib» feltöltött JDBC könyvtár az adatbázis szerver kapcsolatot. Amikor csatlakozik 10g Enterprise Edition kiszolgálót használják ojdbc7.jar könyvtárban. Abban az esetben, 10g Express Edition kiszolgáló ojdbc14_g.jar használtak könyvtárak, ojdbc14.jar. Kapcsolódni az IDE Eclipse könyvtár a projekthez kell választania azt a helyi menüből válassza ki a „Build Path / Add építsünk Path”. Használatának letiltása a könyvtár a projektben, használja a lap „Java Építőanyag Path” a projekt tulajdonságai ablak.
Egy példa az alábbi szoftver modulok:
alapmodulként kapcsolat létrehozásához az adatbázis-kiszolgáló és a munka területeken BLOB és CLOB (TEXT);
Olvasás CLOB objektum
Paraméterek rögzítésére eljárások és az olvasás nagy LOB tárgyak közé tartozik a tábla neve asztalra. LOB-névmezők területen. mező neve elsődleges kulcs pk. id rekord azonosítóját és a fájl elérési útját fpath. Ha szükséges, akkor módosítsa ezeket az eljárásokat tartalmazza, mint a paraméter a neve a rendszer séma (Oracle) vagy adatbázis Adatbázis (MySQL). Lehetséges, hogy az elsődleges kulcs tartalmazhat több területen.
Megjegyzés.
1. Meg kell jegyezni, hogy a munkamódszerek és CLOB és BLOB mezők nem újra a táblázat szerint a fent bemutatott. De ez az Oracle és MySQL adat a példában használt. Ie azt lehet mondani, hogy a módszerek JDBC «megbirkózni” mezők LOB adatok számára. Ezen túlmenően, a MySQL használják TEXT típusú, és az Oracle CLOB.
2. Lehet, hogy különböző technikák felvétel LOB mező tartalmát fájlok bemutatásra kerül példa MySQL.
Az alábbiakban egy lista DAOBase.java, ahol módszerekkel dolgozó CLOB és BLOB mezők nem tartalmaznak kódot. Ez úgy történik, szándékosan, hogy láthatóvá teljes DAOBase.java modulszerkezetet. Ellenkező esetben a lista nagyban növeli, és „a fák nem lesz képes látni az erdőt”. Műveleti kód mezők LOB módszereket ismertetjük.
Listing DAOBase.java
Eljárások létrehozására createTable (SQL) és eltávolítása dropTable (SQL) DB táblázatban nem szerepelnek a közös listán DAOBase.java módszerek példa szerint hajtsa végre a kiegészítő funkciót, és arra használjuk, hogy „podygryshe”. Általános szabály, hogy az adatbázis szerkezete ritkán változik, és nem kell figyelembe venni a pályázati eljárás, amelyeket nem használnak.
Listing olvasni módszerek és írni az adatokat egy BLOB mező
Két kiegészítő readBlobField writeFromBlob2Stream és funkció magán és használt módosítók readBlobToFile alapvető módszere kirakás egy fájlban tárol.
Írni a BLOB mező fájlt használja setBinaryStream módszer. kap paraméterként patak FileInputStream. Amikor a kirakodás egy fájlt az adatbázis az eljárás readBlobToFile először olvassa BLOB tárgy (readBlobField), akkor meg van írva, hogy a kimeneti stream OutputStream eljárásban writeFromBlob2Stream, amely egy olvasási mód a bináris adatfolyam getBinaryStream () BLOB objektumot.
Vételi eljárások olvasni és írni az adatokat a CLOB területén
Két kiegészítő readClobField és readFromClob2Stream funkció módosítók magán- és használt alapvető módszerek readClobToFile. readClobData amikor egy fájl feltöltésével egy adatbázisból.
Figyelembe kell venni a karakterkódolást írásakor egy szöveges fájlt a adatbázist használják InputStreamReader és BufferedReader. Fájl bejegyzéseit CLOB / TEXT mező módszert alkalmazzák setCharacterStream CLOB objektum. amelyek továbbítása BufferedReader. Amikor a kirakodás egy fájlt az adatbázis az eljárás readClobToFile először olvassa CLOB objektum (readClobField), akkor meg van írva, hogy a kimeneti stream BufferedWriter eljárás readFromClob2Stream, amely egy olvasási mód a szimbólumfolyamot getCharacterStream () CLOB objektum.
Listing OracleDAO.java
OracleDAO.java modul felsorolásban szereplő újra createConnection () módszert és a adatbázis létrehozásának createTable eljárásokat. A szerkezetek a táblázatok leírt az állandók és a TABLE_blobs TABLE_files az SQL-script közé csak a mező ID mező azonosítókat és a megfelelő LOB adattípusok. Alapértelmezésben a terepi van NULL értékeket eljárásokban alkalmazott a frissítés.
Amikor létrehoz egy objektumot a kivitelező azonnal létrehoz egy kapcsolatot az adatbázis szerver. Mivel tulajdonságai kapcsolatot átadott objektumot kódoló telepítve vegyület „utf8”.
Listing MySQLDAO.java
MySQLDAO.java modul felsorolásban szereplő újra createConnection () módszer. Eljárás adatbázis létrehozása createTable eljárások és writeClob módszer. amely bemutatja egy másik megközelítés felvétel szimbólum fájl a szöveges mezőbe. Ebben az eljárásban FileInputStream file stream azonnal átirányítja folyni setAsciiStream. De ahhoz, hogy az nem torzítja a karaktereket használja a megfelelő kódolás egy adatbázis táblában, és csatlakozni a szerverhez. A szülő osztály módszer DAOBase.java writeClob is hibátlanul működött. Így az Ön rendelkezésére 2 beállítja a felvételi szövegfájlt az adatbázisba MySQL.
A szerkezetek a táblázatok leírt az állandók és a TABLE_blobs TABLE_files az SQL-script közé csak a mező ID mező azonosítókat és a megfelelő LOB adattípusok. Egy asztal „fájlok” set kódoló „UTF8”. Alapértelmezésben a terepi van NULL értékek miatt eljárásokban alkalmazott a frissítés.
Amikor létrehoz egy objektumot a kivitelező azonnal létrehoz egy kapcsolatot az adatbázis szerver, ami egy ingatlan át a kapcsolat létrejötte kódolás „utf8”.
vizsgálati példa
A fő alkalmazási modul MainTest.java vizsgálatot végez felvételt módszerek az adatbázis fájlt, és feltölteni egy fájlt. A fő testDAO vizsgálati módszer veszi, mint a paraméter egy alap osztályt (polimorfizmus). A módszer testDAO először ellenőrizze, hogy az adatbázis-kiszolgáló kapcsolatot. Ha a kapcsolat létrejött, akkor hozzon létre egy táblázatot, amelyben tárolni és letölteni fájlokat.
teszteredmények
Az alkalmazás egy üzenetet jelenít meg, és az eredményeket a vizsgálati módszereket írási és olvasási LOB-objektumok a konzolon.
letöltés példa
A forráskód ezen példa írni és olvasni LOB LOB JDBC itt tölthető le (7,27 MB).
Amikor a vizsgálat példáját, meg kell határozni azokat a csatlakozási beállításokat, hogy a szerver adatbázis - séma (adatbázis), a felhasználói nevet és a jelszót.