Weboldal, ill. webalkalmazás készítés JSF és JPA + Apache Tomcat használatával I.
Készítsünk JPA által támogatott weboldalt ill. webalkalmazást csupán az Apache Tomcat web konténerének használatával, kihagyva az EJB konténert a rendszerb?l. A JPA nagyon meg tudja könnyíteni a perzisztens adatok kezelését. Gyakorlatilag nem kell az adatbázissal és az adatok konvertálgatásával bajlódnunk, hanem elvégzi helyettünk a “piszkos munkát”.
Amit készíteni fogunk, az egy webshop logikai része. A style-okkal most nem foglalkozok, mivel az amúgy is mindíg más. Egy nagyon egyszer? weboldalon fogom bemutatni hogy is kell egy ilyet megtervezni.
El?ször is milyen modellre lesz szükségünk.
- Cikkek (items)
- Kosár (cart)
- Rendelések (orders) /fejléc ill. tételek/
Ezeknek meg kell határozni a tulajdonságaikat.
Cikkek
- azonosíto
- név
Rendelések (fejléc)
- rendelési azonosító
- rendelési szám
Rendelések (tételek)
- rendelés
- cikk
- mennyiség
Kosár
- cikk
- mennyiség
Természetesen ez egy nagyon egyszer? modell, mivel nem akartam túlbonyolítani. Ahhoz, hogy ez teljes egészében használható legyen még szükség van a megrendel?re és egyéb tulajdonságokra is, de ezt rátok bízom.
Ezek után határozzuk meg, hogy mi az amit perzisztensen le kell tárolni adatbázisba, és mi az ami csak egy adott session-ig él a rendszerben.
A cikkeket egyértelm?en le kell tárolni, mivel minden felhasználó ezek közül kell hogy válogasson.
A kosár tartalmát viszont már nem, mivel az csak addig él, amíg a látogató leadja a rendelést, kés?bb átalakul megrendeléssé.
A megrendelés viszont megint perzisztens, mert kés?bb vissza kell tudni nézni a megrendeléseket a rendszerben.
Tervezzük le a szolgáltatásokat, amik a rendszer m?ködéséhez kellenek:
- kosár kezelése (cart manager) /nem perzisztens/
Ide fogjuk pakolni a cikkeket, amib?l majd a megrendelés készül
- cikkek kezelése(item manager) /perzisztens/
Nyílván kell tartani, hogy a látogató mib?l tud választani
- rendelés kezelése(order manager) /perzisztens/
A leadott rendeléseket ez a szolgáltatás fogja kezelni
Ezek a szolgáltatások fogják “kiszolgálni” a logikai részt, és egy egy interfészben deklaráljuk ?ket. De err?l kés?bb…. , most készítsük el az adatbázist.
A kosár mint már kiderült nem perzisztens, ezért csak a cikktörzset és a megrendelést kell létrehozni az adatbázisban.
A következ? SQL utasítással hozzuk létre az adatbázist:
CREATE DATABASE WEBSHOP_TEST;
Ezzel kész is van az adatbázisunk. Hozzuk létre a táblákat:
Cikkek
CREATE TABLE items (
id integer CONSTRAINT itemsPRK PRIMARY KEY,
name varchar(100) NOT NULL
);
Rendelések fejléce
CREATE TABLE orders (
id integer CONSTRAINT ordersPRK PRIMARY KEY,
order_number varchar(13) NOT NULL
);
Rendelés tételek
CREATE TABLE order_items (
order_id integer NOT NULL,
item_id integer NOT NULL,
quantity integer NOT NULL,
CONSTRAINT order_itemsPRK PRIMARY KEY(order_id,item_id)
);
Mivel a rendelési tételek a rendelés ill. a cikkek között kapcsolatok állnak fenn, ezért szükség van küls? kulcsokra:
ALTER TABLE order_items ADD CONSTRAINT orderFK FOREIGN KEY (order_id) REFERENCES orders (id) MATCH FULL;
ALTER TABLE order_items ADD CONSTRAINT itemFK FOREIGN KEY (item_id) REFERENCES items (id) MATCH FULL;
Én postgreSQL-t használok, de természetesen használhatunk bármilyen adatbázisz szervert, amihez van JDBC meghajtó.
Ha ez megvan elkezdhetjük az etitások és a szolgáltatások tervezését.
Folyt. köv…
Comments:
You must be logged in to post a comment.