Kurs Java Data Access

Java je programski jezik koji ima najširu primenu u svetu informacionih tehnologija, zbog čega se i smatra najtraženijim na tržištu već godinama unazad. Stručnjaci koji poseduju znanja za bar jednu od brojnih mogućnosti koje nudi Java vrlo brzo dolaze do odlično plaćenog posla, a ovaj kurs pruža vam priliku da proširite svoje veštine i da u svoj CV dodate još važnih tehnika za rad u pomenutom programskom jeziku.

Polaznici ovog kursa imaće mogućnost da saznaju sve o problemima čuvanja podataka kroz upotrebu programskog jezika Java i upoznaju se sa najrazličitijim tipovima skladišta. Činjenica je da postoje brojni načini da jedna aplikacija sačuva određene podatke, a da pritom to nije čuvanje u radnoj memoriji, ali ovaj kurs baviće se isključivo korišćenjem relacionih baza podataka u pomenute svrhe.

Nakon uspešno završenog kursa polaznici će se osposobiti za upotrebu Hibernate ORM Frameworka i njegovu integraciju u Java softverske aplikacije. Osim toga, stečena znanja omogućiće vam da radite na razvoju profesionalnih skalabilnih aplikacija po uzoru na savremene softverske arhitekture.

S obzirom na to da je ovaj kurs deo plana i programa koji pohađaju budući Java programeri, podrazumeva se da će polaznici imati određeno predznanje zbog kog će im dalje usavršavanje biti znatno olakšano. Praktične veštine sa ovog, ali i svih ostalih kurseva na pomenutom programu, kvalifikovaće vas kao Java programera koji vlada svim potrebnim znanjima i spreman je da obavlja brojna kompleksna zaduženja u najzastupljenijem programskom jeziku.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: Java Development Program.

Opis i cilj kursa Java Data Access

Ovaj kurs se bavi problemima perzistencije, ali i objektno-relacionog mapiranja u programskom jeziku Java. Tokom kursa biće predstavljene i obrađene osnove objektnog modela i relacionog modela, kao i problemi nekompatibilnosti koji se javljaju između njih.

Poseban fokus kurs stavlja na Hibernate alat za objektno-relaciono mapiranje, jedan od najpopularnijih alata ove vrste.

Polaznici ovog kursa će imati mogućnost da saznaju mnogo toga o problemima čuvanja podataka kroz upotrebu programskog jezika Java i upoznaju se sa najrazličitijim tipovima skladišta. Činjenica je da postoje brojni načini da jedna aplikacija sačuva određene podatke, a da to nije čuvanje u radnoj memoriji, ali ovaj kurs baviće se isključivo korišćenjem relacionih baza podataka u pomenute svrhe.

Nakon uspešno završenog kursa polaznici će biti osposobljeni za upotrebu Hibernate ORM Frameworka i njegovu integraciju u Java softverske aplikacije. Osim toga, stečena znanja omogućiće im da rade na razvoju profesionalnih skalabilnih aplikacija po uzoru na savremene softverske arhitekture.

Osnovni cilj kursa je da se svi polaznici osposobe za korišćenje različitih vidova perzistencije, sa posebnim akcentom na upotrebu Hibernate ORM Frameworka i njegovu integraciju u Java softverske aplikacije. Osim toga, pohađanjem ovog kursa polaznici će takođe imati mogućnost da se osposobe za razvoj profesionalnih skalabilnih aplikacija po uzoru na savremene softverske arhitekture.

Brojna korisna znanja i praktične veštine koje polaznicima nudi ovaj kurs usvajaće kroz četiri tematske celine koje su osmišljene tako da im celokupan proces učenja bude što jednostavniji.

Na početku polaznike očekuje modul posvećen perzistenciji, tokom kog će ih gradivo kursa uvesti u sam pojam perzistencije i pružiti im potrebna znanja o NoSQL-u i relacionim bazama podataka. Zatim sledi drugi deo kursa, koji će se baviti objektno-relacionim mapiranjem i pripremanjem polaznika za korišćenje ORM alata. Nakon toga, naučiće šta je JPA – specifikacija koja definiše pravila po kojima se izvodi perzistencija objekata. Tokom ovih lekcija polaznici će saznati šta je entitet i kako se definiše, a uz to će se upoznati i sa tehnikama potrebnim za rukovanje entitetom. Poslednji modul akcenat će staviti na sticanje znanja koja se tiču Open Source alata za objektno-relaciono mapiranje u programskom jeziku Java, odnosno Hibernateu.

U tim lekcijama polaznici će se upoznati sa konfiguracijom i objektnom arhitekturom pomenutog alata. Takođe će naučiti i sve što je neophodno o mapiranju, tj. obeležavanju podataka tako da oni mogu biti prepoznati i upotrebljeni na pravi način.

Stečena znanja polaznici će moći da iskoriste za mapiranje relacija kroz korišćenje XML-a ili anotacija. Pored toga, ovaj deo kursa približiće im i pojmove kao što su CRUD, Hibernate Query Language i lazy loading.

Kurs Java Data Access će vam odgovoriti na pitanja:

1. Šta je podatak, a šta informacija?

U svakodnevnom govoru, ali i u određenim stručnim tekstovima, česta je upotreba termina podatak i informacija u gotovo izjednačenom, sinonimnom značenju. Ipak, reč je o dva pojma koja često imaju potpuno različito značenje.

Podatak je pojam koji se odnosi na neku neorganizovanu činjenicu ili vrednost koja za konzumenta nema nužno neko posebno značenje. Na primer, jedan skup podataka može biti: 15 16 20 17 17 20 19.

Za čitaoca, dakle, ovaj skup podataka nema nikakvo posebno značenje. Ipak, ukoliko bismo rekli da su ovi brojevi prognozirane dnevne temperature za narednu nedelju, ovakav skup podataka bi za čitaoca već dobio određeno značenje. Čitalac bi onda znao da broj 15 predstavlja prognoziranu temperaturu za naredni ponedeljak, broj 16 temperaturu za utorak i tako dalje.

Ovako interpretirani podaci za čitaoca sada postaju informacije. Zato se kaže da je informacija procesiran, organizovan, strukturiran i prezentovan podatak. Informacija je, dakle, zapravo podatak koji za konzumenta ima neko upotrebljivo značenje.

Podatak, takođe, postaje informacija i procesom obrade. Tako se prikazani skup brojčanih podataka koji predstavljaju temperature za narednu nedelju može obraditi, te na taj način dobiti neka informacija. Na primer, prikazani skup podataka se može iskoristiti za računanje prosečne temperature za narednu sedmicu. Takva kalkulacija predstavljala bi obradu. U takvoj situaciji, skup prikazanih brojeva bi bili podaci, a vrednost 17,7 informacija koja bi predstavljala očekivanu prosečnu temperaturu naredne nedelje.

2. Šta je perzistencija?

Pojam perzistencije se odnosi na mogućnost čuvanja podataka i nakon prestanka izvršavanja aplikacije. Gotovo sve aplikacije imaju potrebu da podatke kojima rukuju sačuvaju za kasniju upotrebu. Razlozi za ovako nešto su brojni. Aplikacija može baratati podacima o zaposlenima, konfiguracionim podacima aplikacije, podacima o statistici korišćenja... Može se reći da su te potrebe praktično neograničene.

Aplikacija za upravljanje ljudskim resursima imaće potrebu za čuvanjem podataka o zaposlenima. Ovakva aplikacija svakako će sadržati mnoštvo objekata zaposlenih, a neki tipični podaci za čuvanje mogu biti ime, prezime, radna pozicija, visina dohotka i slično. Sve ove podatke iz objekata zaposlenih potrebno je sačuvati na neku vrstu perzistentne memorije. U toku izvršavanja aplikacije, ovi podaci postoje unutar radne memorije koja je takozvana transient ili volatile memorija, pa se može reći da su takvi podaci samo privremeno sačuvani.

U slučaju nestanka napajanja, ovakve memorije nisu u mogućnosti da sačuvaju svoje stanje, tako da dolazi do gubitka podataka. Sa druge strane, postoje memorije koje mogu da čuvaju podatke čak i nakon gubitka napajanja. To su takozvane non-volatile memorije.

Na kraju se može zaključiti da je osnovna uloga perzistencije čuvanje podataka tako da oni nadžive izvršavanje aplikacije.

3. Šta je NoSQL?

Postoje razne vrste baza podataka, u zavisnosti od načina na koji su podaci organizovani i na koji im se pristupa. Trenutno najrasprostranjenije su baze podataka relacionog tipa. Kod njih se podaci se smeštaju u tabele koje su povezane relacijama. Ipak, poslednjih godina pojavljuje se niz tehnologija za smeštanje podataka u drugačijem maniru, koje odgovaraju zahtevima modernih aplikacija.

NoSQL predstavlja skraćenicu za pojam Not Only SQL. Reč je o mehanizmima za baratanje podacima koji su modelovani tako da ne koriste tabele i njihove relacije i zavisnosti.

Jednostavno, određeni scenariji, tj. primene određenih aplikacija bolje se snalaze sa drugačijim mehanizmima skladištenja podataka. Imajući ovo u vidu, lako je razumeti značenje filozofije koja se krije iza pojma NoSQL.

Postoji nekoliko tipova sistema za upravljanje bazama podataka koji se mogu smatrati NoSQL bazama (Document, Graph, Key-Value, Column, objektne baze podataka). Podela se zasniva na samom načinu smeštanja podataka.

Java Data Access

4. Zašto su relacione baze podataka najzastupljenije?

U vreme intenzivnog razvoja sistema za smeštanje i upravljanje podacima (DBMS – database management system), objektno orijentisano programiranje nije bilo mnogozastupljeno. To je jedan od razloga što je razvoj sistema za upravljanje podacima iskoristio relacioni model.

Još jedan od razloga za današnju dominaciju relacionih baza podataka jeste jezik kojim se rukuje podacima u ovakvim sistemima. Naravno, reč je o SQL-u. SQL je jedan od danas najpopularnijih jezika za upravljanje relacionom bazom podataka. Alati zasnovani na SQL-u dostupni su, praktično, za svaku kombinaciju operativnog sistema, platforme i baze podataka. Takođe, gotovo svaki programer ili IT profesionalac poseduje makar osnovno poznavanje SQL-a.

Relacione baze podataka su zrela tehnologija koja je dokazana u praksi. Gotovo svaki od danas popularnih relacionih sistema za upravljanje bazama podataka ima za sobom veoma dug razvoj i aktivnu upotrebu.

Takođe, relacione baze podataka zasnivaju se na široko prihvaćenim standardima. Migracija između dva relaciona sistema za upravljanje bazama podataka (RDBMS – relational database management system) ne predstavlja preveliku teškoću.

Postoje mnogi RDBMS-ovi (MySQL, Microsoft SQL Server, SQLite, Apache Derby, Oracle RDBMS). U ovom kursu detaljno ćete se upoznati sa danas najkorišćenijim sistemom za rukovanje bazama podataka – MySQL-om. Neki od najvećih i najpoznatijih softverskih sistema koriste MySQL kao sistem za rukovanje bazama podataka; među njima su i Facebook, Twitter, YouTube, Flickr, Wikipedia i mnogi drugi.

5. Šta je objektno-relaciono mapiranje?

Za obavljanje, odnosno obezbeđivanje perzistencije jednog Java objekta, na raspolaganju su nam brojne tehnike. Tako nešto se ne događa automatski. Neophodno je razviti logiku koja osobine i stanja objekta na adekvatan način upisuje u bazu, tako da je kasnije čitanje i ponovno korišćenje objekta moguće. Za ovako nešto neophodno je poštovati neka unapred utvrđena pravila. Autori ovih pravila moramo biti mi programeri; takođe, svako ko bude hteo da radi sa objektima mora znati pravila po kojima je perzistencija u bazi izvršena.

Karakteristika Jave jeste postojanje klasa, dok je karakteristika baze podataka postojanje tabela. Kako premostiti jaz između njih?

Proces koji premošćava jaz između relacionog i objektno orijentisanog modela naziva se objektno-relaciono mapiranje. Ovaj proces se skraćeno naziva ORM (object-relational mapping). Objektno-relaciono mapiranje može biti složen proces, uzimajući u obzir nepotpunu kompatibilnost objektnog i relacionog sistema.

Naš cilj je da podacima rukujemo kroz Java objekte, što je prirodno gledište s aspekta jedne aplikacije.

Veoma često se potpuno neopravdano može potceniti proces konvertovanja Java klasa u tabele baze podataka i obrnuto.

6. Šta je baza podataka?

Baza podataka je kolekcija strukturiranih informacija. Osnovna uloga baze je da upravlja velikom količinom podataka i da omogući korisniku rukovanje podacima na organizovan i strukturiran način.

Baza podataka poseduje različite mehanizme koji omogućavaju da se velika količina podataka logički organizuje, odnosno strukturira, i da se takvi podaci na lak način pretražuju, filtriraju i sortiraju. Takođe, baza podataka nudi jednostavne mehanizme za obavljanje osnovnih operacija nad podacima, koje podrazumevaju kreiranje, brisanje, ažuriranje i čitanje. Na kraju, baza podataka poseduje i napredne mehanizme bezbednosti i razne druge funkcionalnosti.

Podaci se unutar baze podataka organizuju unutar tabela. Tabele se sastoje iz kolona i redova, koji međusobnim presecanjem čine ćelije. Svaka tabela baze podataka koristi se za čuvanje podataka o jednom entitetu. Entiteti su zapravo pojmovi iz realnog sveta čiji podaci se modeluju bazom podataka. Na primer, unutar baze se mogu čuvati podaci o nekim osobama. U takvoj situaciji, entitet je Osoba.

7. Šta je Hibernate?

Hibernate je open source alat za objektno-relaciono mapiranje u Java programskom jeziku. On omogućava razvoj perzistentnih klasa korišćenjem opšte koncepte Java jezika, kao što su: asocijacija, nasleđivanje, polimorfizam, kompozicija, manipulacija kolekcijom objekata i slično. Sve ovo ukazuje na to da Hibernate u potpunosti podržava objektno-orijentisanu paradigmu.

Pored toga što vodi računa o objektno-relacionom mapiranju Java klasa i tabela u bazi podataka, Hibernate omogućava i kreiranje upita, pa na taj način značajno utiče na skraćivanje vremena tokom razvoja onog dela softvera koji se tiče pisanja SQL koda i JDBC-a. Hibernate koristi, dakle, klase i objekte, nasuprot ResultSeta i SQL upita. Sam Hibernate brine o upitima, tj. vrši njihovo generisanje, bez obzira na sistem za upravljanje bazom podataka koji konkretna aplikacija koristi. Ovi upiti mogu biti napisani SQL upitnim jezikom ili Hibernate upitnim jezikom, koji je objektno orijentisan (HQL – Hibernate Query Language). Hibernate je ORM rešenje specijalno dizajnirano za Javu; danas je jedno od najpopularnijih rešenja ove vrste.

Plan i program predavanja

Modul 1: Perzistencija

  • Uvod u perzistenciju
  • NoSQL
  • Relacione baze podataka

Modul 2: Objektno-relaciono mapiranje

  • Uvod u objektno-relaciono mapiranje
  • ORM alati

Modul 3: JPA

  • Uvod u JPA
  • Rukovanje entitetima

Modul 4: Hibernate

  • Uvod u Hibernate
  • Konfigurisanje i objektna arhitektura
  • Mapiranje
  • CRUD
  • Mapiranje relacija korišćenjem XML-a
  • Mapiranje relacija korišćenjem anotacija
  • Hibernate Query Language
  • Lazy loading

Potreban softver i tehnički uslovi:

Potrebno je imati računar sa instaliranim Windows/Linux/macOS operativnim sistemom, Oracle OpenJDK, IntelliJ IDEA Community razvojno okruženje i MySQL Workbench.

Potrebno predznanje:

Podrazumeva se da polaznik poseduje predznanje iz kurseva Core Java Programming, Advanced Java Programming i MySQL programiranje i administracija.

Kompetencije:

Perzistencija

  • poznavanje korišćenja baza podataka u Java aplikaciji, kao i različitih načina sprovođenja perzistencije u programskom jeziku Java

Objektno-relaciono mapiranje

  • poznavanje osnovnih principa objektnog i relacionog modela, kao i objektno-relacionog mapiranja

JPA

  • korišćenje JPA specifikacije za rukovanje entitetima

Hibernate

  • korišćenje Hibernate okvira kao rešenja za perzistentni sloj

Kurs Objektno - relaciono mapiranje - Hibernate

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok je otvoren!

Da saznate sve o upisu, kliknite ovde