Sunteți pe pagina 1din 7

Laborator 10

Conectarea cu JDBC la BD MySQL


10.1 Ce este JDBC ?
JDBC sau Java Data Base Connectivity este un API care permite programarea
in Java a accesului la Bazele de date. Acestea pot fi create intr-unul dintre
sistemele de gestiune a bazelor de date (SGBD) urmatoare : Oracle , MySQL,
Access, FoxPro, DB2
In functie de tipul SGBD-ului, dar si de tipul sistemului de operare (pe 32 de
biti sau pe 64 de biti), aceast acces se programeaza in mod diferit.
Astfel :
- Daca SGBD-ul este Oracle sau MySQL conexiunea se face direct prin
driver-ul JDBC
- Daca baza de date este creata cu un SGBD mai vechi ca tehnologie
(Access, DB2, FoxPro), conexiunea se face cu ajutorul driver-ului ODBC
(Open Data Base Connectivity) care transmite mai departe connexiunea
JDBC-ului
10.2. Conexiunea cu o BD
Procesul de conectare la o BD are doua etape :
1. Incarcarea in memorie a driver-ului corespunzator (se incarca clasa care
implementeaza acel driver)
2. Realizarea conexiunii propriu-zise
- se importa pachetele de clase java.sql.* si javax.sql.*
- se specifica in cod locatia BD astfel :
jdbc : sub-protocol : identificator_baza_de_date
unde
sub-protocol denumeste tipul de driver (oracle, odbc, db2)
identificator_baza_de_date este format din numele host al calculatorului pe
care se afla BD, numarul portului de comunicatie, calea catre BD si numele
acesteia
Exemple :
Daca BD este in ORACLE :
jdbc:oracle:myhost:1521:testdb
Daca BD este in MySQL :
jdbc:mysql://localhost:3306/testdb
Daca BD este in MySQL Server:
jdbc:odbc:testdb
Obs. Versiunea curenta de JDBC este 4.0.

Clasele necesare pentru conexiunea cu BD sunt :


java.sql.DriverManager (pt conectarea aplicatiei la BD)
java.sql.Connection (pentru conectare pe baza de user si parlola)
java.sql.Statement (pt interogari SQL)
java.sql.ResultSet (pt executia interogarii)
java.sql.DataSource

10.3. Descarcarea driver-ului JDBC pt MySQL


Se merge la adresa
http://dev.mysql.com/downloads/connector/j
si se descarca connectorul pt Platforma independent deoarece Windows poate
fi pe 32 sau 64 de biti. Acesta este un fisier .zip care se va dezarhiva. Din
aceasta arhiva, fisierul care ne intereseaza si pe care il vom folosi ulterior
este
mysql-connector-java-5.1.34-bin.jar
10.4. Realizarea BD
Pentru crearea bazei de date puteti sa va ajutati de instrumentele din XAMPP.
Daca aveti XAMPP instalat, lansati-l si porniti cele doua servere Appache si
MySQL (ATENTIE la configurarile de securitate din config.inc.php pentru a seta
o parola pe ROOT !! altfel calculatorul dvs poate fi atacat din afara prin
porturile deschise de aceste servere)
Creati o BD numita testdb asa cu doua tabele Student si Note

Student
CNP
Nume
Prenume
An
Specializare
Tel
Note
CNP
Nota1
Nota2
Nota3

In tabele CNP trebuie facut cheie primara, deoarece astfel este identificat in
mod unic un student. Pentru aceasta afisati structura BD si in structura
fiecarei tabele se marcheaza CNP ca si cheie primara (aceasta va aparea
subliniata) :

Inserati inregistrari in tabelele dvs folosind comanda Insert. In campul Media


nu introduceti nimic deocamdata.
Dup ace ati introdus date, creati relatia intre cele doua tabele astfel: in partea
stanga dati click pe numele BD (testdb). Din meniu alegeti More/Designer.
Trebuie s ava apara cele doua tabele si campurile lor. Conectati cele doua
tabele folosind iconul relational asa cum se arata in imaginile urmatoare.
Relatia va fi de tipul unul-la-mai-multi, iar restrictiile de integritate sunt ca
atunci cand se sterge ceva in tabela mama (un student) sa nu se poata
realiza stergerea daca exista note in tabela copil) iar cand se actualizeaza
ceva in tabela student, sa fim obligati sa actualizam si in tabela note.

In acest moment, baza dvs de date este pregatita pentru interfatarea cu


aplicatia Java.
10.5. Realizarea proiectului Java
Deschideti Eclipse si creati un nou proiect numit testJDBC.

In acest proiect adaugati o noua clasa numita Driver (bifati optiunea pt


includerea functiei main() in clasa). Adaugati proiectului driver-ul descarcat
mai devreme (fisierul .jar) astfel :
In proiect adaugati un nou folder numit lib (prin click dreapta pe
numele proiectului)
In acest folder adaugati fisierul mysql-connector-java-5.1.34-bin.jar (prin
drag and drop)
Click dreapta pe numele proiectului testJDBC/Properties/Java Build
Path/Add JARs (din eticheta Libraries) si alegeti fisierul .jar din lib, apoi
apasati OK.

Acum putem trece la scrierea codului Java :


import java.sql.*;
public class Driver {
/**
* @param args
*/
public static void main(String[] args) {
try{

//Realizarea conexiunii cu BD
Connection myConn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", "root", "pass");
//Crearea unei interogari
Statement myStmt = myConn.createStatement();
//Executia unei interogari
ResultSet myRs = myStmt.executeQuery ("select * from student");
//Procesarea rezultatelor interogarii
while (myRs.next())
{ System.out.println(myRs.getString("Nume")+","+
myRs.getString("Prenume")+","+myRs.getInt("An"));}
}catch (Exception e){
e.printStackTrace();
}
}
}

Ce se afiseaza ? Realizati si alte interogari pe cele doua tabele Student si


Note.
In laboratorul urmator veti invata sa introduceti date in BD printr-o aplicatie
Java.