Exemplu Jdbc

Exemplul arată interacțiunea cu mai multe baze de date (Oracle, sql ms, postgresql, mysql, derby-ul) pentru conectarea la server, crearea de creare și ștergere de circuit (Database) și îndepărtarea mesei. Cu o mică revizuire, puteți lucra simultan cu mai multe tipuri de baze de date relaționale. Exemplul este creat folosind toate principiile de bază ale OOP (programare orientată-obiect) - encapsulare-moștenire-polimorfism.







Site-ul oferă, de asemenea, un exemplu de scriere a fișierelor în câmpurile de baze de date binare (BLOB) și de caractere (CLOB / TEXT) ale Oracle și MySQL, care pot fi văzute aici.

Descrierea exemplului

Imaginea de ecran prezintă un exemplu JDBC în mediul de dezvoltare Eclipse.

Exemplu Jdbc

Exemplul considerat de JDBC include mai multe module software care implementează principiile OOP:

  • dao_base.java - clasa de bază pentru definirea proprietăților și funcțiilor pentru accesarea serverului bazei de date;
  • dao_oracle.java, dao_mssql.java, dao_postgres.java, dao_mysql.java, dao_derby.java - clase care moștenesc proprietățile clasei de bază și punerea în aplicare a funcției pentru a avea acces la un server de baze de date special;
  • test_jdbc.java - modul de testare.

Directorul lib găzduiește driverele JDBC pentru diferiții furnizori de baze de date. În exemplu, au fost utilizate următoarele servere de baze de date. Oracle 10g Express Edition și MySQL 5.1

În plus, exemplul include Apache Derby DBMS (directorul db), care, împreună cu driverele JDBC, este inclus în codul sursă al exemplului. DBMS Derby funcționează în modul "EmbeddedDriver", adică Se execută sub controlul mașinii virtuale JVM împreună cu exemplul. Un exemplu poate fi folosit pentru a dezvolta și depana funcții suplimentare. Codul sursă pentru proba ca proiect Eclipse poate fi descărcat aici.

Clasa de bază, dao_base.java

Clasa de bază este abstractă, inclusiv cele două metode abstracte setURL () și getConnection (). Aceste metode, care determină șirul de conectare al adresei URL la serverul de baze de date și returnează obiectul conexiune Conexiune la serverul de bază de date, trebuie implementate în "moștenitorii".

Metoda Connect () înregistrează driverul JDBC și determină proprietățile conexiunii.

Datorită faptului că crearea unei sintaxă schema bazei de date CREATE SCHEMA (și elimina „DROP SCHEMA“) DBMS are diferențe, clasa de bază definește metodele createSchema (schema String finală) și dropSchema (schema finală String), care trebuie să fie înlocuite în clasele de moștenire.

Metoda execSQL (final String sql) este utilizată pentru a efectua tranzacții de bază de date. Dacă apare o eroare de tranzacție, consola afișează un cod și un mesaj de eroare.

Module de acces DBMS

Modulele de acces la serverele DBMS moștenesc proprietățile clasei de bază și implementează funcțiile acesteia.

Codul sursă al dao_oracle.java

Când creați un obiect, descrierea driverului este transmisă constructorului părinte. Metoda setURL () definește șirul de conexiune la serverul DBMS. Obiectul conexiunii de conectare este creat din nativ pentru driverul de clasă - pentru Oracle aceasta este OracleConnection.







Datorită faptului că schema Oracle este asociat de obicei cu un cont de utilizator și a creat „putem spune,“ atunci când creați un utilizator (în cazul în care utilizatorul creează primul obiect), funcțiile modulului de creare a dao_oracle și schema de ștergere nu este înlocuită.

Codul sursă este dao_mssql.java

În constructorul de clasă, șirul de descriere a driverului este definit. Formatul șirului de conectare pentru URL-ul la serverul de bază de date MS SQL este reprezentat în metoda setURL (gazdă String, bază de date String, port int). Dacă numele bazei de date "baza de date" este determinat, conexiunea va fi făcută la o bază de date directă, altfel la server.

Codul sursă dao_postgres.java

PostgreSQL, spre deosebire de alte DBMS-uri relaționale, vă permite să creați mai multe baze de date "DATABASE", care sunt containere cu schemele "SCHEMA". Baza de date "postgres" este creată în mod implicit. În modulul nostru de acces, nu avem în vedere problema creării unei baze de date, care aproape că nu diferă de crearea schemei. În mod implicit, ne vom conecta la baza de date "postgres", în interiorul căreia vom crea o schemă.

Codul sursă este dao_mysql.java

În MySQL conceptele de bază de date „database“ și schema „SCHEMA“, se poate spune sunt sinonime. Prin urmare, sintaxa pentru crearea unei baze de date poate fi utilizat ca „CREATE DATABASE nume_bază_date“, și „CREATE nume_schemă SCHEMA“.

Codul sursă este dao_derby.java

O caracteristică distinctivă a DBMS-ului Derby în modul "EmbeddedDriver" este că rulează sub controlul mașinii virtuale JVM împreună cu exemplul. Pentru a accesa acest DBMS în "dao_derby", trebuie să definiți calea către baza de date în șirul de conexiune. În exemplul nostru, este localizat împreună cu aplicația.

Desigur, trebuie să utilizați testele JUnit pentru a testa modulele de acces la serverele DBMS. Dar acest lucru nu este atât de evident. Utilizarea JUnit în timpul dezvoltării aplicației este prezentată pe pagina programului de testare, JUnit. În codul sursă de probă, un test de conectare la serverul de baze de date Apache Derby a fost inclus ca eșantion. Acest DBMS este ales ca exemplu, deoarece este gestionat de același JVM ca și aplicația și nu necesită o instalare suplimentară a serverului de baze de date.

În unitatea de testare "test_jdbc.java" definim o matrice de parametri de conectare la serverul DBMS.

Parametrii de conectare "params" trebuie să fie configurat. Pentru a face acest lucru, trebuie să specificați HOST-ul serverului DBMS în primul câmp. Pentru MSSQL, este de asemenea necesar să specificați serviciul serverului DBMS corespunzător împreună cu gazda. În coloana a doua, trebuie doar să corectați SID-ul serverului Oracle. În cazul de testare, este specificat SID-ul dezvoltatorului "XE". Pentru Derby, este specificată calea relativă la baza de date. În următoarele 2 coloane, trebuie să introduceți valorile corespunzătoare de conectare și parolă. Ultima coloană indică valoarea drapelului activității ACTIVE, care vă permite să excludeți serverul de la test. Acești parametri de conectare sunt utilizați în procedura de conectare createConnecion, care trebuie transmisă modulului de acces și ID-ului DBMS:

În plus, definim steagurile pentru crearea obiectelor (scheme, tabele) și constantele de text, care sunt utilizate la afișarea mesajelor.

Scripturi SQL creează și șterge tabele:

Scripturile SQL conțin caracterele "% s", care trebuie înlocuite fie cu numele schemei, fie cu un simbol gol.

Procedura de creare a schemei și a tabelului createObjects

În procedura "createObjects" schema este creată în toate DBMS cu excepția Oracle.

După crearea schemei de baze de date MySQL și MSSQL, reconectăm la schema nou creată pentru crearea tabelului. În sistemele PostgreSQL și Derby DBMS vom crea un tabel cu numele schemei, adică "MEDIA".

Procedura de ștergere a tabelului schemă și dropObjects

Procedura elimină mai întâi tabelul și apoi șterge schema, dacă baza de date nu este Oracle. Pentru a șterge o schemă în MS SQL, este necesar să se "deconecteze" de la schemă, altfel va exista o eroare cu mesajul că este imposibil de șters din cauza conexiunilor existente.

Codul sursă este dao_derby.java

În codul sursă, dăm doar descrierea constructorului "test_jdbc". Toate celelalte variabile și metode utilizate în exemplu sunt prezentate mai sus.

În constructor, în buclă este creat un obiect "dao", după care se conectează la serverul de bază de date, se formează o schemă și un tabel în schema nou creată. După aceasta, obiectele nou create sunt șterse și "dao" este deconectat de la serverul de bază de date.

Următoarea captura de ecran afișează mesajele din acest exemplu JDBC din consola Eclipse.

Exemplu Jdbc







Articole similare

Trimiteți-le prietenilor: