February 2009
M T W T F S S
« Jun   Oct »
 1
2345678
9101112131415
16171819202122
232425262728  




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…

24 February 2009 | Uncategorized | Comments

Comments:

You must be logged in to post a comment.