Java saját szoftver készítése 9. rész – MVC és DAO az Áfa modulon keresztül

Úgy látom, hogy korábban nem beszéltem a rendeléseket rögzítő szoftverem elvi felépítéséről, a különféle kérések kezeléséről, az adatok kiszolgálásáról. Itt jön képbe az MVC és a DAO, most ezeken keresztül mutatom be, hogy működik a programom.

Ha megnézzük a StudiCore Java SE tanfolyamának részleteit, ott az Adatbázisok + Java SE haladó eszközök kurzus 35. fejezete ez: JDBC II. – A DAO minta használata az adatbáziskezelésben. A DAO lényege, hogy a különféle adatbázisműveleteket DAO osztályokba tesszük, és objektumokat adunk át nekik, minden adattáblát önálló DAO osztály kezel.

Gondolom az előnye világos, ahelyett, hogy véletlenszerűen írogatnánk a sokféle forrásfájlba az adatbázis hívásokat, egy vagy több DAO osztályba tesszük ezeket, így módosításkor mindent könnyen megtalálunk, és nem lesz keveredés.

Az MVC pedig a szoftvertervezésben használatos szerkezeti minta, amely szétválasztja az adatok kezelését és a felhasználói felületet. Így anélkül lehet az adatokkal foglalkozó részt módosítgatni, hogy a felhasználók bármit is észre vennének belőle. Ezt az ötletet a mentorom adta még a tervezés korai szakaszában, és ennem megfelelően terveztem meg a programot.

Olvass tovább

Java saját szoftver készítése 8. rész – Értesítő ablakok

Írtam egy saját ErrorDialog osztályt, hogy a hibaellenőrzések során kapott problémákat meg tudjam jeleníteni. Aztán most eszembe jutott, hogy a StudiCore képzésében is volt szó ezekről az értesítő ablakokról, így a saját osztályra nem lesz szükség.

Ezek használata sokkal kényelmesebb, szabványosabb lesz a kód, és már egy csomó dolgot megírtak előttem, amit csak fel kell használnom:

Olvass tovább

Java saját szoftver készítése 7. rész – OrderDetailsDialog problémák

Hú, egy jó érdekes feladatba futottam bele, gondoltam megosztom mindenkivel. Van az OrderDetailsDialog osztályom, ami gyakorlatilag egy JDialog ablak. Ez a felelős a megrendelések felviteléért és a módosításáért is. Most még különösebb dizájn nélkül így néz ki:

orderdetailsdialog.jpg

Haladjunk felülről lefelé.

Olvass tovább

Most alakul ki a végleges terv

A múltkoriakban írt terveket egyedül készítettem, mivel pont akkor úgy jöttek össze az ünnepek, hogy nem volt elérhető a mentorom. Azóta már itt van, és a segítségével nagyon jó dolgok készülnek. Most úgy néz ki, hogy végre kikristályosodtak a felelősségi körök, és erről hamarosan újra írni is fogok.

Épp ma kaptam választ a mentoromtól egy utolsó kérdésre, ezt még értelmezem, és akkor tudom teljessé tenni az osztály diagrammot, illetve elkészíteni a szekvencia diagrammot. Közben már próbálgattam az ötleteket Javaban is, szereintem a megvalósítással nem lesz gond.

Tehát hétvégéig várható a kész modell, aztán utána a megvalósítás.

Java saját szoftver készítése 6. rész – ModifyDeleteDialog

Ugye most ott tartok a tervezésben, hogy vannak különféle listáim, melyek objektumokat tartalmaznak:

  • List<Order> orders: ez a megrendeléseket tartalmazza
  • List<Company> companies: a vállalatainkat tartalmazza
  • List<Customer> customers: a megrendelőket tartalmazza
  • List<Vat> vats: az áfa értékeket tartalmazza (mondjuk ez lehetne vatValues, szebben hangzik)
  • List<Employee> employees: ez pedig a dolgozóinkat tartalmazza

Tervezek egy ModifyDeleteDialog dialógusablakot, melyet az objektumok szerkesztéséhez és törléséhez használnék fel. Ez megkapná az adott listát, aminek elemeit egymás alatt megjelenítené. Ha a customers-t kapja meg, akkor az ügyfeleket listázza egymás alatt, ha az employees-t, akkor meg a munkatársainkat.

Olvass tovább

Java saját szoftver készítése 5. rész – SQL Date átalakítása LocalDate-ra

Most belefutottam egy problémába, az SQL adatbázisból kiolvasott Date típusú adatot használnám fel egy Order típusú objektum elkészítéséhez, ami viszont LocalDate típust vár.

A ResultSet rs tartalmazza az SQL lekérdezés eredményét. Egy while ciklussal végig megyek rajta, és kiolvasom a rekordokat. A getString metódussal kiolvasom a Date értéket, és azt átalakítom LocalDate típusúvá:

Olvass tovább

Java saját szoftver készítése 4. rész

Elkészítettem azokat az osztályokat, melyek az adatbázisból kiolvasott adattáblák tartalmából készítenek objektumokat. A kiolvasás során létrejövő objektumok aztán majd listákba kerülnek, és azokat fogom feldolgozni és használni a vizuális felületen.

Egyelőre még csak a kontruktorokat, gettereket és settereket hoztam létre, illetve az adattagokat határoztam meg. Most látom már, hogy a múltkor használt adatbázis oszlopneveket kicsit majd át kell írnom, hogy ne legyen összevisszaság a programozás során. Inkább a Java-ban használatos elnevezést követem, pl a tax number az nem tax_number vagy taxnumber lesz, hanem taxNumber.

Olvass tovább

Java saját szoftver készítése 3. rész

Most készítem el az adatbázist és az adattáblákat, és közben rájöttem, hogy angol elnevezéseket kellene használnom. Ennek az a fő oka, hogy ha fel szeretném külföldön használni az elkészült szoftvert referenciaként, akkor nem kell fordítgatnom a forráskódot, változóneveket, adattáblákat stb. Ha pedig Magyarországon lesz megmutatva valakinek, ő úgyis megérti majd az angol elnevezéseket.

A szoftver felülete viszont magyar lesz, mert amint kész, mi használnánk is, és nincs értelme angolnak lennie. A szöveges elemeket viszont pikk-pakk át lehet írni angolra. De akár egy következő feladat lehet a többnyelvűsítés.

Így létrehoztam az ordermanager adatbázist, és benne a következő táblákat (az elnevezési konvenciókat most nem feltétlenül tartom be, kényelmi okok miatt).

Olvass tovább

Java saját szoftver készítése 2. rész

Folytassuk akkor a StudiCore nagy feladatául szolgáló Java saját szoftver készítését a programtervvel. Ebben a bejegyzésben leírom, hogyan képzelem el a program működését, mit lehet vele csinálni, és hogyan működnek az egyes programrészek.

A szoftver tárolja a vállalkozásaink megrendeléseit, vevőit és íróit. Mivel alapvetően minden cég a sajátunk lesz, így az a koncepció, hogy bármelyik vállalkozás adatait láthatjuk.

Olvass tovább