Documente Academic
Documente Profesional
Documente Cultură
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
12.2. Conexiunea cu o BD
1. Incarcarea in memorie a driver-ului corespunzator (se incarca clasa care implementeaza acel
driver)
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
Se merge la adresa
http://dev.mysql.com/downloads/connector/j
12.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)
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.
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.40-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 (aveti grija sa inlocuiti pass cu parola dvs :
import java.sql.*;
/**
* @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"));}
import java.sql.*;
/**
* @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();
Compilati si executati. Daca totul a fost corect, singurul mesaj afisat este
« Insert complete ». Vizualizati noua inregistrare inserata in baza de date.
Prin codul urmator se modifica numele unei personae a carui CNP este dat (dati un CNP ce se
afla deja in BD)
import java.sql.*;
/**
* @param args
*/
public static void main(String[] args) {
try{
//Realizarea conexiunii cu BD
Connection myConn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", "root", "pass");
import java.sql.*;
/**
* @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
String sql = "delete from student where CNP='1920227500034'";
myStmt.execute(sql);
System.out.println ("Delete complete");
}catch (Exception e){
e.printStackTrace();