4. előadás.  Általánosan a modellről  Table Data Gateway Pattern  A modellosztályok áttekintése  Zend_Db modellek nélkül  Controllerek ismét  Action-ök,

Slides:



Advertisements
Hasonló előadás
7. előadás.  Zend_Auth komponens  Authentikációs típusok  Az authentikáció menete  Zend_Acl_Resource  Zend_Acl_Role  Jogosultságkezelés ZF-ben.
Advertisements

Tananyag: konzultáció
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Elmaradás.  0 Számjegy. Ebben a pozícióban egyetlen számjegyet kell megadnia.  9 Számjegy. Ebben a pozícióban egyetlen számjegyet lehet megadni, nem.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Delphi programozás alapjai
Az MVC tervezési minta 2. előadás.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
megismerése, mintaadatbázis létrehozása
SQL – DQL (Data Query Language ) adat lekérdezések
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Adatbázis rendszerek II.
Készítette: Sárközi Anikó
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
SQL92 lehetőségek KL A tábla B tábla C view adatok VIEW működése utasítás: SELECT.. FROM A,B … SELECT.. FROM C Az adatok a hivatkozáskor állítódnak elő.
6. előadás: PHP-MySQL Barabás Péter
Entity framework Krizsán Zoltán
ADATBÁZISOK
ADATBÁZISOK
ADATBÁZISOK
Delphi programozás 8. ELŐADÁS ADO ActiveX Data Objects.
Nézettáblák létrehozása, módosítása és törlése
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
SQL.
Az SQL nyelv alapjai.
Nézettáblák, felső-N analízis Március 20. Rózsa Győző.
Dr. Krauszné Dr. Princz Mária Adatbázis rendszerek I.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Adatbázis-kezelés SQL-lel
Felhasználók és jogosultságok
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Objektum orientált programozás a gyakorlatban
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Programozási Nyelvek II.
Készítette: Lipp Marcell
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 10. gyakorlat SQL SELECT, Összekapcsolás, Nézettáblák.
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
Adatbázis kezelés.
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
Adatbázis-kezelés Tarcsi Ádám január. 15. MySQL és PHP.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Webprogramozó tanfolyam
Adatbázis rendszerek I
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
1 Verseny 2000 gyakorlat SQL 2000 Server Portál adatbázis létrehozása.
Haladó Programozás Adatbázis-elérési módszerek összehasonlítása
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Egy lekérdezés végrehajtása SELECT o1 FROM T1 WHERE o2 = … Hogyan jutnak el a megfelelő sorokból a mező értékei a klienshez?
Gráfadatbázisok Rácz Gábor.
Informatikai gyakorlatok 11. évfolyam
Programozás III JPA.
Adatbázisok 1. SQL (alkérdések). Az IN használata Emlékezzünk vissza: Az IN után szereplő multihalmaz elemei lekérdezéssel is megadhatók SELECT nev FROM.
1 SQL jogosultság-kezelés Privilégiumok Grant és Revoke Grant Diagrammok.
PHP függvények MySQL adatbázisok kezelésére
Alkalmazásfejlesztés gyakorlat
Előadás másolata:

4. előadás

 Általánosan a modellről  Table Data Gateway Pattern  A modellosztályok áttekintése  Zend_Db modellek nélkül  Controllerek ismét  Action-ök, és más metódusok  M-V-C együttműködése

 A modell mindig az üzleti logikát, az adathalmazokat jelenti egy alkalmazás esetén. Webes alkalmazásoknál ez leginkább a relációs adatbázisokat jelenti, de nem kizárólag.

 Ne közvetlenül nyúljunk az adatbázishoz  Legyen egy elérési réteg, amin keresztülmegy minden művelet  Tábla átjáró, Sor átjáró  programozói szemmel ez 2 db osztályt jelent, egyet a táblának, egyet a tábla egy rekordjának Zend_Db_* : Zend_Db_Table_Abstract, Zend_Db_Table_Row, Zend_Db_Table_Rowset

 Ha a táblán egy lekérdezést hajtunk végre, rekordok halmazát kapjuk eredményül: Zend_Db_Table_Rowset típusú objektumot, amit bejárhatunk, hogy hozzáférjünk az egyes rekordokhoz mint Zend_Db_Table_Row objektum  A Rowset-et nem sűrűn kell származtatni, mert minden, amire szükségünk lehet előre le van implementálva benne  A táblákhoz és a rekordokhoz viszont mindig saját osztály írása (2 file a models mappában táblánként)

 Elnevezési konvenciók (tábla, modell, sormodell)  Protected attribútumok segítségével megadjuk az osztály fontosabb tulajdonságait: ◦ $_name ◦ $_primary ◦ $_rowClass ◦ $_rowsetClass ◦ $_referenceMap ◦ $_dependentTables ◦ $_schema ◦ …

 Egyéni lekérdezések, a sorokra vonatkozó műveletek adhatók meg  RowSetek esetén: current() metódus!  Overriding jelentősége  save() metódus (date_created, date_updated)  toArray() – a rekordból név/érték párok alapján asszociatív tömböt készít

 A két művelet nagyrészt megegyezik kódszinten, ezért egyetlen action-ben szoktuk megírni a duplikációk elkerülése végett (view-ban is egyezik)

 resources.db.adapter = "pdo_mysql" resources.db.params.host = "localhost" resources.db.params.username = "webuser" resources.db.params.password = "XXXXXXX" resources.db.params.dbname = "test" resources.db.isDefaultTableAdapter = true

 $config = new Zend_Config_Ini( APPLICATION_PATH.'/configs/application.ini', APPLICATION_ENV );  $db = $config->resources->db; $db = Zend_Db::factory($db->adapter, $db->params->toArray());

 Használható a Zend_Db ún. adapteres módban is  Ilyenkor nem írunk modellosztályokat  Nem átlátható, nagy redundancia, ráadásul az MVC is sérül

 Zend_Db_Select  return: Provides a fluent interface SELECT name, salary FROM employee WHERE boss_ID = 12 AND salary< ORDER BY name ASC; $select = $db->select() ->from(‘employee’, array(‘name’, ‘salary’)) ->where(‘boss_ID = ?’, 12) ->where(‘salary < ?’, ) ->order(‘name’); $resRowSet = $db->fetchAll($select);

 Létezik az összes SQL kulcsszóra (joinok különböző fajtái, group, having, stb…) metódus  Előny: (szintaktikailag) adatbázisfüggetlen lekérdezés  Automata idézőjelezés (biztonsági szempont)  Persze nem kötelező élni a lehetőséggel, egyszerű query-ket is írhatunk  Dinamikusság, ellentétben a beírt SQL-lel szemben

 MySQL nem kezel kapcsolatokat  A modell megírásával viszont képesek vagyunk rá  Kapcsolatok számossága  findDependentRowset()  findParentRowset()  findManyToManyRowset() $accountsTable = new Accounts(); $accountsRowset = $accountsTable->find(1234); $user1234 = $accountsRowset->current(); $bugsReportedByUser = $user1234->findDependentRowset('Bugs');

 Pld.: Egy fórumtéma törlése esetén szeretnénk törölni az összes bejegyzést is az adott témában, de ezt nem akarjuk külön kiadni utasításba  Sajnos csak egy szinten implementált  A $_referenceMap tömb onDelete és onUpdate elemeiben jelennek meg

 „Zend_Controller is the heart of Zend Framework's MVC system.”  Osztályok, melyek a vezérlést végzik  Kapcsolat az adatok, és azok megjelenítése közt  IndexController és ErrorController  URL-ek alapján dől el, melyik action fog futni  Ezek az ún. action controllerek, van sok egyéb is

 Utility methods _forward() _redirect()  Action helperek  Action-ök: Pld.: ForumController, listtopicAction() (view: views/scripts/forum/listtopic.phtml)

 Paraméterek átadása GET-tel: /modifier/felhasznalo/mikor/ekkor  $this->getRequest();  $_POST és $_GET együtt  $request->getParam(’topicid’);  $request->getParam(’modifier’);  $request->getParam(’mikor’);

 Tehát megírjuk a modellt, a controllerben elkérünk tőle egy adathalmazt, és azt feldolgozzuk  Az action-ben pedig továbbadjuk a már megfelelően átdolgozott adathalmazt egy változóként a megjelenítésnek. (A view a következő előadás anyaga)

 Adatbázis, adatbázisterv és modellek létrehozása  Modellosztályok áttekintése  Zend_Db adapter módban való használata  Controllerekben való adatfeldolgozás