140 likes | 307 Views
Java ODBC . Student: Marko Pletikosa Voditelj: mr.sc. Marko Čupić Zagreb, svibanj 2007. Ideja. Omogućiti videoteci lakši rad korištenjem suvremenih tehnologija. Poslati kartice o članovima u mirovinu. Videoteka ima članove i filmove.
E N D
Java ODBC Student: Marko Pletikosa Voditelj: mr.sc. Marko Čupić Zagreb, svibanj 2007.
Ideja • Omogućiti videoteci lakši rad korištenjem suvremenih tehnologija. • Poslati kartice o članovima u mirovinu. • Videoteka ima članove i filmove. • Potrebno je evidentirati koji film je posudio koji korisnik, kad je to napravio i u skladu s tim mu to pošteno i naplatiti.
Ideja (2) • Baze podataka zvuče kao razumno rješenje • Školovani trgovci koštaju • Postoji li način da nam ne treba trgovac koji poznaje SQL? • Može ako imamo jednostavnu aplikaciju kojom se lako služiti
Ciljevi • Upoznavanje s mogućnostima Jave u komuniciranju s SUBP-ima • Izrada konkretnog rješenja – program namjenjen videoteci
Problemi (1) • Kako komunicirati s bazom podataka? • Kako izvršavati upite? • Kako upravljati rezultatima? • Kako spremati objekte?
Modeli pristupa podatcima • Dvoslojni • Troslojni
Spajanje na bazu podataka (1) • Java JDBC API nije dovoljan • Dodatan upravljački program specijaliziran za pojedine SUBP
Spajanje na bazu podataka (2) • Učitavanje upravljačkog programa Class.forName(imeUpravljačkogPrograma); • Povezivanje Connection veza = DriverManager.getConnection( URL, username, password);
Postavljanje upita • Korištenjem Statement sučelja i sučelja nasljeđenih iz njega • Postoje ukupno tri osnovne vrste: • Statement • PreparedStatement • CallableStatement
Izvršavanje upita - Statement • Statement objektu predamo SQL upit – običan string • I zatim od njega zatražimo da to i izvrši. Statement upit = veza.CreateStatement(); upit.executeQuery (“Select * from film;”);
Problemi (2) 1. Što ako želimo želimo izvršiti upit koji ovisi o parametru? 2. Kako doći do rezultata upita?
Sučelje PreparedStatement • Ima mogućnost postavljanja ulaznih parametara PreparedStatement pst = veza.prepareStatement (“Select * from film where sifFilm =? ”;); pst.setObject (1, sifraFilma, java.sql.Types.INTEGER);
Rezultati • Sučelje ResultSet • Ima napredne mogućnosti: • Kretanje po tablici • Mijenjanje podataka u tablici pa čak može i spremiti te promjene natrag • Osluškivati bazu i samostalno osvježiti svoje podatke ako je došlo do promjene
ResultSet - primjer • ResultSet rez = pst.executeQuery (); • rez.next(); • int sifra = rez.getInt(1); • String naslov = rez.getString(2);