http://www.oracle.com/technetwork/developertools/jdev/overview/index.html ) 1. Kreiranje nove aplikacije: - U okviru ApplicationNavigator-a kliknuti na New Application iz padajuceg menija. - Zadati ime aplikacije i izabrati Generic Application - U narednom koraku zadati ime projekta i kliknuti Finish 2. Kreiranje .java i .sqlj klasa - Desnim klikom na kreirani projekat dobija se padajuci meni gde se izabere New... - Da bi se kreirao Java paket ili Java klasa, u sekciji General se bira Java, a onda u desnom panelu bira Java Package, odnosno Java Class. - Da bi se krairao .sqlj fajl u sekciji Database Tier se izabere Database Files, a potom SQLJ Class. 3. Kreiranje konekcije sa bazom - File -> New i u sekciji General izabrati Connections a potom Database Connection. U novootvorenom prozoru treba izvrsiti potrebna podesavanja: Connection Name: proizvoljno ime za konekciju Connection Type: DB2 UDB Username: korisnicko ime Password: lozinka Server Name: ime servera (npr. codd.matf.bg.ac.rs), odnosno, ime lokalne masine Port: 50000 Database: ime baze sa kojom se vrsi povezivanje Klikom na Test Connection moze da se proveri da li ce konekcija biti uspesno uspostavljena. Nakon kreiranja, postojeca konekcija se dodaje u listu konekcija, sto se moze videti u okviru Application Resources (ispod Application Navigatora) pod stavkom Connections -> Databases 4. Azuriranje potrebnih biblioteka za rad sa SQLJ fajlovima Tools -> Manage Libraries Izabrati Libraries i selektovati User iz padajuce liste i kliknuti na New... Zadati ime biblioteke (npr sqlj) u polju Library Name. Selektovati ClassPath i kliknuti na AddEntry... i iz foldera C:\Program Files\IBM\SQLLIB\java izabrati db2java.zip db2jcc.jar db2jcc.zip sqlj.zip i db2jcc_licence_cu.jar Slicno, selektovati Source Path i nakon klika na AddEntry... izabrati iste fajlove Kliknuti na OK. Pogledati tutorial (ili help) za detaljnija objasnjenja ukoliko se jave neki problemi. Opis zadataka za vezbu: Zadaci koji su postavljeni su organizovani u projekat iz JDevelper-a koji sadrzi nekoliko paketa sa primerima:
- veliki_objekti - paket koji demonstrira upotrebu CLOB i BLOB
tipova podataka - statPrij1 - paket koji demonstrira upotrebu korisnicki definisane funkcije, pri cemu je funkcija definisana upotrebom sqla - statPrij2 - paket koji demonstrira upotrebu korisnicki definisane funckije, pri cemu je funkcija definisana kao eksterna funkcija u posebnoj klasi kao odgovarajuci metod - speed_limits - demonstrira kreiranje i upotrebu distinct tipova i funkcija koje se mogu definisati nad njima Ceo projekat se moze importovati na sledeci nacin: - File -> Import... i potom izabrati Source Into New Project - zadati ime novog projekta i kliknuti Next - Java Souce Path treba da sadrzi putanju do projekta koji treba da se importuje. Kliknuti na Add... - Pronaci odgovarajuci projekat i u njemu src poddirektorijum gde se nalaze izvorni fajlovi. Kliknuti na Next. - Treba importovati biblioteke koje su potrebne za rad sa SQLJ fajlovima - Klikom na AddLibrary izabrati biblioteku koju ste sami kreirali (npr User->sqlj) a iz sekcije Extension izabrati Oracle JDBC i SQLJ Runtime. - Next ili odmah Finish Ako se svaki paket generise pojedinacno, bez importovanja, mora i svaki od fajlova da se napravi posebno. Primer paketa speed_limits : - Kreirati Java paket speed_limits - Generisati Java klasu Convert.java - Generisati .sqlj fajl SpeedLimits.sqlj - Generisati Util.sqlj i podesiti odgovarajuce vrednosti za bazu, korisnicko ime i lozinku Pokretanje: 1. veliki_objekti - desni klik na ime paketa i izabrati opciju Rebuild. Nakon toga nestace crvene linije kojim su podvuceni delovi koda u glavnom programu gde se koriste npr. klase koje su definisane u Util.sqlj ili iteratori. Desni klik na VelikiObjekti.sqlj i izabrati Run. Ovaj primer se moze pokretati i nad bazom transak na codd-u. 2. statPrij1 - U programu UdtStatus.sqlj kreira se funkcija (definisana kao sql funkcija, tj. nakon specifikacije odmah se navodi i definicija funkcije). Funkcija se koristi u glavnom metodu. Pokretanje slicno kao i u prethodnom primeru (moze se pokrenuti i na codd-u). Ostali primeri nece raditi na codd-u, jer neka podesavanja nedostaju. Najbolje je raditi na lokalnoj bazi. Na ispitu se takodje radi sa lokalnom bazom. 3. statPrij2 Varijanta prethodnog primera, samo sto je sada funkcija definisana kao eksterna, tj. funkcija se kreira zadavanjem samo specifikacije, a opis same funkcije se nalazi u posebnoj klasi u okviru metoda (klasa StatusDef, metod status_prijave).
Uraditi Rebuld za StatusDef.java. Bice generisan StatusDef.class
fajl i nalazi se u podfolderu classes odgovarajuceg foldera koji odgovara projektu. StatusDef.class treba iskopirati u C:\Program Files\IBM\SQLLIB\FUNCTION. Nakon toga izvrsiti Rebuld i za Util.sqlj i za UdfStatus.sqlj Potom Run za UdfStatus. Drugi nacin je da se koristi .jar fajl (paket statPrij2B) U tom slucaju treba iz komandne linije izvrsiti generisanje .jar fajla i ugradnju u bazu. Rebuld za StatusDef.class Iz komandne linije izvrsiti: jar -cvf sjar.jar StatusDef.class db2 call sqlj.install_jar("file:\\\C:/.../sjar.jar", 'SJAR') Nakon toga se vrsi Rebuld za UdfStatus.sqlj i pokretanje (u definiciji funkcije izmenjena je klauzula EXTERNAL NAME u odnosu na prethodnu varijantu). Dakle, .jar fajl mora da se kreira i ugradi pre nego sto se funkcija kreira. 4. speed_limits i speed_limits1 sadrze definicije distinct tipova i funkcija koje se nad njima primenjuju, s tim sto su dve definisane kao eksterne u posebnoj klasi (Convert.java) speed_limits1 je varijanta gde se koristi .jar fajl za ugradnju funkcije u bazu (promenjena je klauzula EXTERNAL NAME u specifikaciji funkcija kako bi se ukljucilo i ime .jar fajla).