Enterprise JavaBeans fejlesztési példa

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Enterprise JavaBeans fejlesztési példa"

Átírás

1 Enterprise JavaBeans fejlesztési példa Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Enterprise JavaBeans példa

2 A J2EE SDK installálása Jelenlegi verzió: 1.4 béta (2002. november) Szükséges hozzá a J2SDK legalább 1.4 verziója Letöltés, telepítés Beállítások: J2EE_HOME a telepítés helyére mutasson J2EE_HOME/bin legyen a PATH-ban ANT_HOME legyen az ant helye (alapban megegyezik a J2EE_HOME -al JAVA_HOME a J2SDK helyére mutasson JAVA_HOME/bin legyen a PATH-ban Enterprise JavaBeans példa EJBpelda / 2

3 A J2EE SDK installálása (folyt.) A j2ee parancs elindítja a szükséges program komponenseket. (A -verbose kapcsoló mutatja történéseket.) A j2ee -stop parancs leállítja a szervert. Enterprise JavaBeans példa EJBpelda / 3

4 ant Fontosabb segédprogramok Mint a make (Apache) cloudscape Java-ban írt relációs adatbáziskezelő deploytool Alkalmazás telepítő j2eeadmin A J2EE környezet konfigurálására Enterprise JavaBeans példa EJBpelda / 4

5 Stateless session bean A feladat: (J2EE Turorial-ból) Készítsünk egy bean-t, amely dollárt yen-re, illetve yen-t euróra tud váltani. Ez egy állapot nélküli session bean lesz, mert Nem kell perzisztens adatokat kezelnie Eseti feladatot old meg, a kliens egyszer meghivja, és visszakapja tőle az eredményt. A kipróbáláshoz kell majd egy kliens és egy JSP, mint Web komponens. Enterprise JavaBeans példa EJBpelda / 5

6 deploytool Új alkalmazás készítése File -> New -> Application Browse File név: ConverterApp.aer Az aer kiterjesztés egy összecsomagolt, telepítésre előkészített alkalmazás szabványos kiterjesztése. Válasszuk a New Application funkciót Enterprise JavaBeans példa EJBpelda / 6

7 A Converter remote interface import javax.ejb.ejbobject; import java.rmi.remoteexception; import java.math.*; public interface Converter extends EJBObject { public BigDecimal dollartoyen (BigDecimal dollars) throws RemoteException; public BigDecimal yentoeuro (BigDecimal yen) throws RemoteException; } Enterprise JavaBeans példa EJBpelda / 7

8 A Converter home interface import java.io.serializable; import java.rmi.remoteexception; import javax.ejb.createexception; import javax.ejb.ejbhome; public interface ConverterHome extends EJBHome { Converter create() throws RemoteException, CreateException;} Enterprise JavaBeans példa EJBpelda / 8

9 A Converter bean osztály import java.rmi.remoteexception; import javax.ejb.sessionbean; Import javax.ejb.sessioncontext; import java.math.*; public class ConverterBean implements SessionBean { Enterprise JavaBeans példa EJBpelda / 9

10 A Converter bean osztály (folyt.) // adattagok BigDecimal yenrate = new BigDecimal(" "); BigDecimal eurorate = new BigDecimal("0.0077"); Enterprise JavaBeans példa EJBpelda / 10

11 A Converter bean osztály (folyt.) // Business metódusok // Ezért van az egész felhajtás! public BigDecimal dollartoyen(bigdecimal dollar) { BigDecimal result = dollar.multiply(yenrate); return result.setscale(2,bigdecimal.round_up); } public BigDecimal yentoeuro(bigdecimal yen) { BigDecimal result = yen.multiply(eurorate); return result.setscale(2,bigdecimal.round_up); } Enterprise JavaBeans példa EJBpelda / 11

12 A Converter bean osztály (folyt.) // A SessionBean interface deklarálja az // alábbi metódusokat, tehát kötelező // implementálni, de most nincs funkciójuk. public ConverterBean() {} public void ejbcreate() {} public void ejbremove() {} public void ejbactivate() {} public void ejbpassivate() {} public void setsessioncontext(sessioncontext sc) {} } // ConverterBean Enterprise JavaBeans példa EJBpelda / 12

13 JAR file előállítása A fejlesztőeszköz segítségével A ConverterJAR.jar file tartalma ConverterBean.class ConverterHome.class Converter.class Egy deployment descriptor, amit a fejlesztőeszköz állít elő Hozzáadás a ConverterApp.ear file-hoz Enterprise JavaBeans példa EJBpelda / 13

14 J2EE alkalmazás kliens Java program, amely nem feltétlenül ugyanazon a JVM-en fut, mint az alkalmazás szerver Két jar file, amiből az egyik alkalmazás szerver specifikus, így a fejlesztőeszköz generálja A másikat a fejlesztőnek kell megírnia, abban van a kliens funkcionalitása A kliens a bean-t a JNDI segítségével találja meg Enterprise JavaBeans példa EJBpelda / 14

15 J2EE alkalmazás kliens (folyt.) import javax.naming.context; import javax.naming.initialcontext; import javax.rmi.portableremoteobject; import java.math.bigdecimal; public class ConverterClient { public static void main(string[] args) { try { // Egy JNDI kontextus létrehozása Context initial = new InitialContext(); Enterprise JavaBeans példa EJBpelda / 15

16 J2EE alkalmazás kliens (folyt.) // A kliens JNDI név kontextusának megszerzése Context myenv = (Context)initial.lookup("java:comp/env"); // A bean referenciájának megszerzése Object objref = myenv.lookup("ejb/simpleconverter"); // Megfelelő típusra konvertálás ConverterHome home = (ConverterHome)PortableRemoteObject. narrow(objref,converterhome.class); // Zöld: JNDI azonosítók Enterprise JavaBeans példa EJBpelda / 16

17 J2EE alkalmazás kliens (folyt.) // Kérés az EJB konténerhez, hogy hozzon létre // egy bean példányt. // A kérés ereménye egy objektum referencia Converter currencyconverter =home.create(); BigDecimal param = new BigDecimal("100.00"); // Innen már minden egyszerű: a kapott objektum // referencia segítségével meghívható a business // metódus BigDecimal amount = currencyconverter.dollartoyen(param); System.out.println(amount); Enterprise JavaBeans példa EJBpelda / 17

18 J2EE alkalmazás kliens (folyt.) amount = currencyconverter.yentoeuro(param); System.out.println(amount); System.exit(0); } catch (Exception ex) { System.err.println("Unexpected exception!"); ex.printstacktrace(); } // catch } // main } // ConverterClient Enterprise JavaBeans példa EJBpelda / 18

19 J2EE alkalmazás kliens (folyt.) Ezután a kliens is csomagolandó egy jar file-ba A file-t hozzá kell adni az alkalmazás ear filejához Be kell állítani a megfelelő JNDI azonosítókat Az alkalmazást telepíteni kell valamilyen eszközzel (deploytool vagy fejlesztőeszköz) A kliens a runclient segédprogammal futtatható Enterprise JavaBeans példa EJBpelda / 19

20 Web kliens A bean kliense lehet például egy JSP is. Ez egy tipikus megoldás Enterprise JavaBeans példa EJBpelda / 20

21 Web kliens (folyt.) page import="converter,converterhome,javax.ejb.*, java.math.*, javax.naming.*, javax.rmi.portableremoteobject, java.rmi.remoteexception" %> <%! private Converter converter = null; public void jspinit() { try { InitialContext ic = new InitialContext(); Object objref = ic.lookup("java:comp/env/ejb/theconverter"); ConverterHome home = (ConverterHome)PortableRemoteObject.narrow(objRef, ConverterHome.class); converter = home.create(); Enterprise JavaBeans példa EJBpelda / 21

22 Web kliens (folyt.) } catch (RemoteException ex) { System.out.println("Couldn't create converter bean."+ ex.getmessage()); } catch (CreateException ex) { System.out.println("Couldn't create converter bean."+ ex.getmessage()); } catch (NamingException ex) { System.out.println("Unable to lookup home: "+ "TheConverter "+ ex.getmessage()); } } Enterprise JavaBeans példa EJBpelda / 22

23 public void jspdestroy() { %> } <html> <head> </head> Web kliens (folyt.) converter = null; <title>converter</title> <body bgcolor="white"> <h1><b><center>converter</center></b></h1> <hr> Enterprise JavaBeans példa EJBpelda / 23

24 Web kliens (folyt.) <p>enter an amount to convert:</p> <form method="get"> <input type="text" name="amount" size="25"> <br> <p> <input type="submit" value="submit"> <input type="reset" value="reset"> </form> <% %> String amount = request.getparameter("amount"); if ( amount!= null && amount.length() > 0 ) { BigDecimal d = new BigDecimal (amount); Enterprise JavaBeans példa EJBpelda / 24

25 <p> <% %> Web kliens (folyt.) <%= amount %> dollars are <%= converter.dollartoyen(d) %> Yen. <p> <%= amount %> Yen are <%= converter.yentoeuro(d) %> Euro. } </body> </html> Enterprise JavaBeans példa EJBpelda / 25

26 Web kliens (folyt.) Ezután ugyanúgy csomagolás (war file-ba), majd hozzáadás az alkalmazás ear file-jához Telepítés, majd a JSP a szokásos módon indítható Enterprise JavaBeans példa EJBpelda / 26

27 Állapottal rendelkező session bean Készítése lényegében ugyanaz, mint az állapot mentes esetben Mivel állapota lehet, általában nem csak egy paraméter nélküli create metódus van a home interface-ben, hanem több create. Példa: egy online könyvesbolt kosara. Enterprise JavaBeans példa EJBpelda / 27

28 Remote interface import java.util.*; import javax.ejb.ejbobject; import java.rmi.remoteexception; public interface Cart extends EJBObject { public void addbook(string title) throws RemoteException; public void removebook(string title) throws BookException, RemoteException; public Vector getcontents() throws RemoteException; } Enterprise JavaBeans példa EJBpelda / 28

29 Remote interface (megjegyzések) A pirossal jelzett részek kötelezőek extends EJBObject RemoteException A zölddel jelzett BookException jelzi, hogy segédosztály(ok)ra is szükség lesz. Enterprise JavaBeans példa EJBpelda / 29

30 Home interface import java.io.serializable; import java.rmi.remoteexception; import javax.ejb.createexception; import javax.ejb.ejbhome; public interface CartHome extends EJBHome { Cart create(string person) throws RemoteException, CreateException; Cart create(string person, String id) throws RemoteException, CreateException; } Enterprise JavaBeans példa EJBpelda / 30

31 Home interface (megjegyzések) Több create metódus, paraméterekkel A kivételek kötelezőek Enterprise JavaBeans példa EJBpelda / 31

32 import java.util.*; import javax.ejb.*; A bean osztály public class CartBean implements SessionBean { String customername; String customerid; Vector contents; public void ejbcreate(string person) throws CreateException {... } Enterprise JavaBeans példa EJBpelda / 32

33 A bean osztály (folyt.) public void ejbcreate(string person, String id) throws CreateException {... } public void addbook(string title) { } contents.addelement(title); Enterprise JavaBeans példa EJBpelda / 33

34 A bean osztály (folyt.) public void removebook(string title) throws BookException { boolean result = contents.removeelement(title); if (result == false) { } throw new BookException(title + } " not in cart."); Enterprise JavaBeans példa EJBpelda / 34

35 A bean osztály (folyt.) public Vector getcontents() { return contents; } public CartBean() {} public void ejbremove() {} public void ejbactivate() {} public void ejbpassivate() {} public void setsessioncontext(sessioncontext sc) {} } Enterprise JavaBeans példa EJBpelda / 35

36 A bean osztály (megjegyzések) A create metódusoknak nem üres implementációjuk van Több meglepetés nincs Csomagolás, alkalmazáshoz adás, telepítés ugyanúgy A bean jar file-jához kell csomagolni a segéd osztályokat (pl. BookException) is. Enterprise JavaBeans példa EJBpelda / 36

37 BMP entitás bean Adatbázisban tárolt adatok reprezentálása A bean állapotának és az adatbázis tartalmának a szinkronizálása a bean feladata Enterprise JavaBeans példa EJBpelda / 37

38 BMP példa Példa: egy bankszámla adatait kezelő bean. A SavingAccountEJB állapota a savingaccount táblában tárolódik, amely az alábbi SQL utasítással képezhető: CREATE TABLE savingsaccount (id VARCHAR(3) CONSTRAINT pk_savingsaccount PRIMARY KEY, firstname VARCHAR(24), lastname VARCHAR(24), balance NUMERIC(10,2)); Enterprise JavaBeans példa EJBpelda / 38

39 A bean osztály A SavingsAccountBean osztály implementálja Az EntityBean interface-t Egy vagy több ejbcreate és ejbpostcreate metódust "finder" (kereső) metódusokat A business metódusokat "home" metódusokat Enterprise JavaBeans példa EJBpelda / 39

40 A bean osztály (folyt.) Korlátozások Az osztály public kell legyen Az osztály nem lehet abstract vagy final Egy üres kontruktort kell tartalmaznia Nem implementálhatja a finalize metódust Az EntityBean interface deklarál számos olyan metódust, amit a bean osztálynak (nem üresen) implementálnia kell (pl. ejbactivate, ejbload stb.) Enterprise JavaBeans példa EJBpelda / 40

41 A bean osztály (folyt.) Az ejbcreate metódus A konténer hívja meg a kliens create metódus hívásának hatására Új elemet illeszt az adatbázisba Inicializálja a bean adattagjait Visszaadja a primary key-t Több is definiálható A példában az insertrow private metódus egy INSERT SQL utasítást ad ki. Enterprise JavaBeans példa EJBpelda / 41

42 A bean osztály (folyt.) Az ejbcreate metódus forrása: public String ejbcreate(string id, String firstname, String lastname, BigDecimal balance) throws CreateException { if (balance.signum() == -1) { throw new CreateException ("A negative initial balance is not allowed."); } Enterprise JavaBeans példa EJBpelda / 42

43 A bean osztály (folyt.) try { insertrow(id, firstname, lastname, balance); } catch (Exception ex) { throw new EJBException("ejbCreate: " + ex.getmessage()); } this.id = id; this.firstname = firstname; this.lastname = lastname; this.balance = balance; return id; } Enterprise JavaBeans példa EJBpelda / 43

44 A bean osztály (folyt.) Az ejbpostcreate metódus Implementálni kell A konténer közvetlenül az ejbcreate után hívja meg Az argumentumok számának és típusának a két metódusra egyeznie kell A visszatérési értéke kötelezően void. Gyakran üres. (A példában is az.) Enterprise JavaBeans példa EJBpelda / 44

45 A bean osztály (folyt.) Az ejbremove metódus A konténer ezt hívja meg a kliens remove metódushívásának hatására Feladat a bean eltávolítása az adatbázisból. Megfelel egy DELETE SQL utasításnak Enterprise JavaBeans példa EJBpelda / 45

46 A bean osztály (folyt.) Az ejbremove metódus implementációja: public void ejbremove() { try { deleterow(id); } catch (Exception ex) { throw new EJBException("ejbRemove: " + } } ex.getmessage()); Enterprise JavaBeans példa EJBpelda / 46

47 A bean osztály (folyt.) Az ejbload és ejbstore metódusok Ha a konténer szükségesnek tarja, meghívja Értelemszerűen implementálandó Ha egy business metódus tranzakcionális, végrahajtása előtt meghívódik az ejbload, utána az ejbstore Enterprise JavaBeans példa EJBpelda / 47

48 A bean osztály (folyt.) Kereső (finder) metódusok A kliens ezek segítségével kereshet meg egy adott entitás beant. A példában három kereső metódust hívhat a kliens SavingsAccount jones = home.findbyprimarykey("836"); Collection c = home.findbylastname("smith"); Collection c = home.findinrange(20.00, 99.00); A bean osztálynak kell implementálnia ezeket ejbfind prefix-el. (pl. ejbfindbylastname) Enterprise JavaBeans példa EJBpelda / 48

49 A bean osztály (folyt.) Kereső (finder) metódusok (folytatás) Az ejbfindbyprimarykey implementálása kötelező, a többi opcionális A kliens nem ezeket hívja közvetlenül, hanem a home interface megfelelő (ejb prefix nélküli) függvényeit A visszatérési értékek a primary key vagy annak kollekciója. Enterprise JavaBeans példa EJBpelda / 49

50 A business metódusok A bean osztály (folyt.) Általában nem tartalmaznak adatbázis kezelést. Az adatfüggetlen logikát valósítják meg. A példa üzleti metódusai: Enterprise JavaBeans példa EJBpelda / 50

51 A bean osztály (folyt.) public void debit(bigdecimal amount) throws InsufficientBalanceException { if (balance.compareto(amount) == -1) { throw new InsufficientBalanceException(); } balance = balance.subtract(amount); } Enterprise JavaBeans példa EJBpelda / 51

52 A bean osztály (folyt.) public void credit(bigdecimal amount) { balance = balance.add(amount); } public String getfirstname() { return firstname; } public String getlastname() { return lastname; } public BigDecimal getbalance() { return balance; } Enterprise JavaBeans példa EJBpelda / 52

53 A bean osztály (folyt.) A "home" metódusok A valamennyi bean-re jellemző üzleti logikát tartalmazzák Nem hivatkozhatnak a bean perzisztens állapotára Általában bean példányok kollekcióján manipulálnak Példa: ejbhomechargeforlowbalance Kezelési költséget von le minden olyan számláról, aminek egyenlege túl kicsi Enterprise JavaBeans példa EJBpelda / 53

54 A bean osztály (folyt.) A home interface tartalmazza az ejbhome prefix nélküli definíciókat, az implemetációs párjuk a bean osztályban van. A kliens a fentit az alábbi módon hívja: SavingAccountHome home;... home.chargeforlowbalance(...) Enterprise JavaBeans példa EJBpelda / 54

55 A home interface A kilens által hívható metódusokat definiálja create metódusok "finder" metódusok Egyéb, általános metódusok (mint most a példában a ChargeForLowBalance) Implementációs párjaik valamilyen prefix-el a bean osztályban találhatók. Enterprise JavaBeans példa EJBpelda / 55

56 A home interface (folyt.) create metódusok Paraméterszignatúrájuk meg kell egyezzen a a megfelelő ejbcreate metódusével. Visszatérési érték típusa a remote interface. A throw ugyanazt a kivétel listát kell tartalmazza, mint a megfelelő ejbcreate metódusé. A throw kell, hogy tartalmazza a javax.ejb.createexception kivételt, a remote home interface ezen felül még a java.rmi.remoteexeption kivételt is. Enterprise JavaBeans példa EJBpelda / 56

57 A home interface (folyt.) "finder " metódusok Ezeknek is megvan a párjuk a bean osztályban A megfelelők paraméterszignatúrája és kivétel listája meg kell egyezzen A visszatérési értékük típusa a remote interface, vagy abból alkotott kollekció Meg kell jelölni a javax.ejb.finderexception kivételt. A remote home interface metódusainál meg kell jelölni a java.rmi.remoteexception kivételt. Enterprise JavaBeans példa EJBpelda / 57

58 home metódusok A home interface (folyt.) Mindegyiknek van egy párja a bean osztályban, amelyek neve az ejbhome prefix-el az itt megadott névből képzendő A nevek nem kezdődhetnek create-el vagy find-al A paraméterszignatúráknak és a kivétel listának páronként egyeznie kell. Nem dobhatják a FinderException kivételt Enterprise JavaBeans példa EJBpelda / 58

59 A home interface (folyt.) import java.util.collection; import java.math.bigdecimal; import java.rmi.remoteexception; import javax.ejb.*; public interface SavingsAccountHome extends EJBHome { public SavingsAccount create(string id, String firstname, String lastname, BigDecimal balance)throws RemoteException, CreateException; Enterprise JavaBeans példa EJBpelda / 59

60 A home interface (folyt.) public SavingsAccount findbyprimarykey (String id) throws FinderException, RemoteException; public Collection findbylastname(string lastname)throws FinderException, RemoteException; public Collection findinrange(bigdecimal low, BigDecimal high) throws FinderException, RemoteException; Enterprise JavaBeans példa EJBpelda / 60

61 A home interface (folyt.) public void chargeforlowbalance (BigDecimal minimumbalance, BigDecimal charge)throws InsufficientBalanceException, RemoteException; } Enterprise JavaBeans példa EJBpelda / 61

62 Remote interface A kliens által hívható üzleti metódusokat definiálja Minden definícióhoz tartozik egy implementáció a bean osztályban, azonos paraméterszignatúrával Az argumentumoknak és a visszatérési értéknek érvényes RMI típusoknak kell lenniük. A metódusoknak dobniuk kell a java.rmi.remoteexception kivételt. A local remote interface-re a fenti két megkötés nem érvényes Enterprise JavaBeans példa EJBpelda / 62

63 Remote interface (folyt.) import javax.ejb.ejbobject; import java.rmi.remoteexception; import java.math.bigdecimal; public interface SavingsAccount extends EJBObject { public void debit(bigdecimal amount) throws InsufficientBalanceException, RemoteException; Enterprise JavaBeans példa EJBpelda / 63

64 Remote interface (folyt.) public void credit(bigdecimal amount) throws RemoteException; public String getfirstname()throws RemoteException; public String getlastname()throws RemoteException; public BigDecimal getbalance()throws } RemoteException; Enterprise JavaBeans példa EJBpelda / 64

65 Két kategória: Kivételkezelés rendszer (system) kivételek hiba a szolgáltatásokban (pl. adatbázis vagy a kívánt objektum nem található) a konténer megszüntetheti a bean-t. a kliens nem tudja lekezelni ha tranzakció közben keltkezik, a konténer visszavonja a tranzakciót Enterprise JavaBeans példa EJBpelda / 65

66 Kivételkezelés (folyt.) alkalmazás (application) kivételek. hiba az üzleti logika végrehajtása közben lehet programozó által definiált vagy előre deiniált a kliens megkapja a kivételt, és annak feladata lekezelni ha a kivétel tranzakció közben keletkezik, a konténer nem vonja vissza azt Enterprise JavaBeans példa EJBpelda / 66

67 Kivételkezelés (folyt.) Előredefiniált system kivételek: Módszer ejbcreate ejbfindprimarykey (és minden finder metódus, ami egy objektumot ad vissza) ejbremove Kivétel CreateException ObjectNotFoundException (a FinderException leszármazottja) RemoveException Ok Érvénytelen input paraméter Az adatbázisban nem található a szükséges sor Az adatbázisból nem törölhető a szükséges sor Enterprise JavaBeans példa EJBpelda / 67

68 Kivételkezelés (folyt.) Előredefiniált application kivételek: Módszer ejbload Kivétel NoSuchEntityException Ok A betöltendő adatbázis sor nem taláható ejbstore NoSuchEntityException A módosítandó adatbázis sor nem taláható Bármelyik módszer EJBException Rendszerhiba történt Enterprise JavaBeans példa EJBpelda / 68

69 CMP entitás bean Adatbázisban tárolt adatok reprezentálása. A bean állapotának és az adatbázis tartalmának a szinkronizálása a konténer feladata. A konténer kezeli a bean-ek közötti kapcsolatokat is. A szükséges beállításokat a deployment descriptorban kell leírni. Nem kell adatbázis kezelést kódolni, ami egyben hordozhatóbbá is teszi a bean-t. Enterprise JavaBeans példa EJBpelda / 69

70 CMP entitás bean példa A példa egy sportszövetség csapatnévsorainak kezelését végző alkalmazás (RosterApp). A kliens a RosterEJB session bean-t éri el. A RosterEJB session bean három entity bean-t kezel: PlayerEJB, TeamEJB, LeagueEJB. Ezeket a lokális interface-ükön keresztül éri el. Egy Player több Team tagja is lehet, de minden Team csak egy League-hez tartozhat. Ennek megfelelően az alkalmazás architektúrája: Enterprise JavaBeans példa EJBpelda / 70

71 CMP entitás bean példa (folyt.) Enterprise JavaBeans példa EJBpelda / 71

72 Egy sportolót reprezentál A PlayerEJB kódja A következő részekből áll: Entity bean osztály (PlayerBean) Lokális home interface (LocalPlayerHome) Lokális interface (LocalPlayer) Enterprise JavaBeans példa EJBpelda / 72

73 A PlayerBean osztály Az osztálynak public-nak és abstract-nak kell lennie. Implementálnia kell az alábbiakat: Az EntityBean interface-t Egy vagy több ejbcreate és ejbpostcreate metódust Minden perzisztens (adatbázisra leképzendő) és kapcsolati (relationship, kapcsolókulcsot képező) mezőre implementálni kell egy-egy get és set metódust. Ezek abstract metódusok. Enterprise JavaBeans példa EJBpelda / 73

74 A PlayerBean osztály (folyt.) Implementálnia kell (folytatás): Tetszőleges számú select metódust (abstract metódusként) A home metódusokat Az üzleti metódusokat Tilos implementálni A finder metódusokat A finalize metódust Enterprise JavaBeans példa EJBpelda / 74

75 Kódolási különbségek Osztálydefiníció Adatbázis elérés Perzisztens állapot Elérési metódusok a perzisztens és kapcsoló mezőkhoz CMP abstract Generált Virtuális perzisztens mezők reprezentálják Szükséges BMP Nem abstract Fejlesztő által kódolt Adattagok reprezentálják Nem szükséges Enterprise JavaBeans példa EJBpelda / 75

76 Kódolási különbségek (folyt.) findbyprimaykey metódus Speciális finder metódusok Select metódusok Az ejbcreate metódus visszatérési értéke CMP A konténer kezeli A konténer kezeli, de a fejlesztőnek kell definiálni EJB QL lekérdezésekkel A konténer kezeli Nincs BMP A fejlesztő írja meg A fejlesztőnek kell megírnia Nincs Primary key-nek kell lennie Enterprise JavaBeans példa EJBpelda / 76

77 Kódolási különbségek (folyt.) Azonos szabályok szerin kell kódolni az üzleti metódusokat a home metódusokat. Enterprise JavaBeans példa EJBpelda / 77

78 A perzisztens mezők A konténer automtikusan gondoskodik a perzisztens mezők adatbázisba mentéséről illetve visszatöltéséről A példa mezői: playerid (elsődleges kulcs) name position salary A PlayerBean osztály által definiált elérési metódusok: Enterprise JavaBeans példa EJBpelda / 78

79 A perzisztens mezők (folyt.) public abstract String getplayerid(); public abstract void setplayerid(string id); public abstract String getname(); public abstract void setname(string name); public abstract String getposition(); public abstract void setposition(string position); public abstract double getsalary(); public abstract void setsalary(double salary); Enterprise JavaBeans példa EJBpelda / 79

80 A perzisztens mezők (folyt.) A névképzés szabályai: A get vagy set szóval kezdődik. A mgefelelő perzisztens mező nagy kezdőbetűvel írt nevével folytatódik. Enterprise JavaBeans példa EJBpelda / 80

81 A kapcsoló mezők Egy PlayerEJB példány több TeamEJB példányhoz kapcsolódhat. A deployment descriptor egy kapcsolómezőt (team) definiál. A kapcsolómező elérési függvényei: public abstract Collection getteams(); public abstract void setteams(collection teams); Enterprise JavaBeans példa EJBpelda / 81

82 A select metódusok Hasonlóak a finder metódusokhoz az alábbiakban: Az adatbázist kérdezik le és objektumokat adnak vissz A deployment descriptor a select metódushoz egy EJB QL lekérdezést specifikál Az entity bean osztálynak nem kell implementálnia a metódusokat Enterprise JavaBeans példa EJBpelda / 82

83 A select metódusok (folyt.) Különböznek a finder metódusoktól az alábbiakban: Visszaadhat perzistens mezőt vagy mezőket, vagy a kapcsolódó bean-ek home interface-ét. (A finder metódus csak home interface-t adhat vissza.) Nem szerepel sem remote, sem a local interfaceben, így nem hiívhatja a kliens. (Általában az üzleti metódusok hívják.) A select meódusok a bean osztályban definiáltak. Finder metódust ez az osztály nem definiálhat. Enterprise JavaBeans példa EJBpelda / 83

84 A select metódusok (folyt.) A PlayerBean osztályban definiált select metódusok: public abstract Collection ejbselectleagues (LocalPlayer player throws FinderException; public abstract Collection ejbselectsports (LocalPlayer player throws FinderException; Enterprise JavaBeans példa EJBpelda / 84

85 A select metódusok (folyt.) Mivel ezeket a metódusokat csak az üzleti logika metódusai érhetik el, a kliens által is szükséges funkciókat a PlayerBean osztály becsomagolhatja, például: public Collection getleagues() throws FinderException { LocalPlayer player = (team.localplayer)context.getejblocalobject (); return ejbselectleagues(player); } Enterprise JavaBeans példa EJBpelda / 85

86 Életciklus metódusok A perzisztenciát a konténer kezeli, így csak az ejbcreate metódusra van szüksége a PlayerBean osztályban. A példában: public String ejbcreate (String id, String name, String position, double salary) throws CreateException { setplayerid(id); setname(name); setposition(position); setsalary(salary); return null; } Enterprise JavaBeans példa EJBpelda / 86

87 A local home interface Definiálja a create, finder és home metódusokat a lokális kliensek számára A create metódus szabályai: paraméterek és kivételek mint az ejbcreate esetén visszatérési érték típusa a bean local interface-e dobnia kell a javax.ejb.createexception kivételt Enterprise JavaBeans példa EJBpelda / 87

88 A local home interface (folyt.) A finder metódusok szabályai: a név a find-al kezdődik a visszatérési érték típusa a bean local interface-e vagy azok kollekciója dobnia kell a javax.ejb.finderexception kivételt a findbyprimarykey metódus definiálása kötelező A példa local home interface-e: Enterprise JavaBeans példa EJBpelda / 88

89 A local home interface (folyt.) package team; import java.util.*; import javax.ejb.*; public interface LocalPlayerHome extends EJBLocalHome { public LocalPlayer create (String id, String name, String position, double salary)throws CreateException; Enterprise JavaBeans példa EJBpelda / 89

90 A local home interface (folyt.) public LocalPlayer findbyprimarykey (String id) throws FinderException; public Collection findbyposition (String position) throws FinderException;... public Collection findbyleague (LocalLeague league) throws FinderException;... } Enterprise JavaBeans példa EJBpelda / 90

91 A local interface Azokat az üzleti és elérési metódusokat definiálja, amelyeket a lokális kliensek használhatnak. A példában: két üzleti metódus: getleagues és getsports get metódusok a kliensek számára a set metódusok rejtettek a kliensek elől, mert nem szerepelnek az interface-ben. A példa LocalPlayer interface-e: Enterprise JavaBeans példa EJBpelda / 91

92 package team; A local interface (folyt.) import java.util.*; import javax.ejb.*; public interface LocalPlayer extends EJBLocalObject { public String getplayerid(); public String getname(); public String getposition(); public double getsalary(); public Collection getteams(); Enterprise JavaBeans példa EJBpelda / 92

93 A local interface (folyt.) } public Collection getleagues() throws FinderException; public Collection getsports() throws FinderException; Enterprise JavaBeans példa EJBpelda / 93

94 The J2EE Tutorial Irodalom Enterprise JavaBeans Technology Fundamentals Short Course Braun Tamás: Internet banki alkalmazás fejlesztése J2EE technológiával és az IBM Websphere alkalmazás szerverrel Diplomaterv, Általános Informatikai Tanszék, Miskolc, Enterprise JavaBeans példa EJBpelda / 94

Enterprise JavaBeans fejlesztési példa

Enterprise JavaBeans fejlesztési példa Enterprise JavaBeans fejlesztési példa Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Enterprise JavaBeans példa A J2EE SDK installálása Jelenlegi verzió: 1.4 béta (2002. november) Szükséges

Részletesebben

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans Enterprise JavaBeans Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans (EJB) server oldali komponens, amely Az üzleti

Részletesebben

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Enterprise JavaBeans 1.4 platform (EJB 2.0) Enterprise JavaBeans 1.4 platform (EJB 2.0) Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans

Részletesebben

Adatkezelés. 11. előadás (Entity Beans)

Adatkezelés. 11. előadás (Entity Beans) Adatkezelés 11. előadás (Entity Beans) Java EE konténerek (ismétlés) Szerver oldali Szerver (tartalmazza a másik kettőt) EJB konténer Web konténer Kliens oldali Alkalmazás konténer Böngésző java pluginje

Részletesebben

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java

Részletesebben

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:

Részletesebben

A Java EE 5 plattform

A Java EE 5 plattform A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 13. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési

Részletesebben

5. rész: A Java EE és az Enterprise Bean réteg. Bakay Árpád dr. NETvisor kft (30)

5. rész: A Java EE és az Enterprise Bean réteg. Bakay Árpád dr. NETvisor kft (30) 5. rész: A Java EE és az Enterprise Bean réteg Bakay Árpád dr. NETvisor kft (30) 385 1711 arpad.bakay@netvisor.hu Java EE Komponensek családfája Java EE Komponens Üzleti logika EJB Container User interface

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 12. gyakorlat 1 Távoli metódushívás Java-ban (RMI) Java-ban a távoli metódushívás ( Remote Method Invocation, RMI) egy

Részletesebben

Stateless Session Bean

Stateless Session Bean Stateless Session Bean Készítsünk egy stateless session bean-t, amellyel összeadhatunk két számot. Hozzunk létre egy Dynamic Web projectet File New Other itt a következőket kell választani: Web Dynamic

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Java Remote Method Invocation API

Java Remote Method Invocation API RMI Java Remote Method Invocation API RMI Java RMI API(Java Remote Method Invocation API): távoli (remote) objektumok metódusainak meghívását lehetővé tevő fejlesztői interfész (API) Kétfajta implementációja

Részletesebben

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI

Részletesebben

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István (viczus@freemail.hu) Viczián István

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István (viczus@freemail.hu) Viczián István Java objektumok leképzése relációs adatbázisokra -vel Viczián István (viczus@freemail.hu) Előszó E cikk olyan haladó programozóknak nyújt segítséget, kik tisztában vannak a Java nyelvvel, és többször is

Részletesebben

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot

Részletesebben

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni? A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 04. 08. 9. Előadás Kivétel kezelés a kivétel (exception) egy esemény, mely futás közben megbontja a program normális futási folyamatát például kivétel dobódik amikor 0-val

Részletesebben

Abstract osztályok és interface-ek. 7-dik gyakorlat

Abstract osztályok és interface-ek. 7-dik gyakorlat Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,

Részletesebben

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes

Részletesebben

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa Web Technológiák Java Server Pages - JSP Répási Tibor egyetemi tanársegéd Miskolc Egyetem Infomatikai és Villamosmérnöki Tanszékcsoport (IVM) Általános Informatikai Tanszék Iroda: Inf.Int. 108. Tel: 2101

Részletesebben

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,

Részletesebben

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes

Részletesebben

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL ) Célok: a Java DB adatbázis-kezelő rendszer használatának ismertetése, adatbázisok használata Java alkalmazásokban - kétrétegű architektúra, egyszerű kliens-szerver architektúra használata hálózati alkalmazásokhoz.

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Bevezető. Servlet alapgondolatok

Bevezető. Servlet alapgondolatok A Java servlet technológia Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 06. Servlet Bevezető Igény a dinamikus WEB tartalmakra Előzmény: CGI Sokáig

Részletesebben

JNDI - alapok. Java Naming and Directory Interface

JNDI - alapok. Java Naming and Directory Interface JNDI - alapok Java Naming and Directory Interface Naming Service Naming service: nevek hozzárendelése objektumokhoz, elérési lehetőség (objektumok/szolgáltatások lokalizálása), információk központosított

Részletesebben

Hello, EJB! Egy egyszerű példa

Hello, EJB! Egy egyszerű példa Hello, EJB! Egy egyszerű példa Előkészítés Java SDK letöltése és telepítése Java EE platform és alkalmazásszerver letöltése és telepítése Glassfish (open-source edition, v3) Fejlesztői környezet letöltése,

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

Tartalom. Az EJB 2.1 problémái Az EJB 3 megoldásai

Tartalom. Az EJB 2.1 problémái Az EJB 3 megoldásai EJB 3 Tartalom Az EJB 2.1 problémái Az EJB 3 megoldásai Miért nem szeretik sokan az EJB 2.1-et? bonyolult a fejlesztés: sok file (legalább 3 java + legalább 2 xml), a fejlesztı eszközök varázslóival kell

Részletesebben

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

OOP: Java 8.Gy: Gyakorlás

OOP: Java 8.Gy: Gyakorlás OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét

Részletesebben

Adatbázisok webalkalmazásokban

Adatbázisok webalkalmazásokban Sapientia - EMTE, Pannon Forrás,,Egységes erdélyi felnőttképzés a Kárpát-medencei hálózatban 2010 A JDBC API A Data Access Object tervezési minta Adatforrás - DataSource JDBC architektúra A JDBC API java.sql

Részletesebben

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title; PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function

Részletesebben

A Java Persistence API PersistenceAPI / 3

A Java Persistence API PersistenceAPI / 3 A Java Persistence API Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 27. A Java Persistence API Előzm zmények Szerializálás Egyedi kevés automatizmus Hibernate,

Részletesebben

R I Szer e i r alizáció.

R I Szer e i r alizáció. Bevezetés Java RMI Párhuzamos és Elosztott rendszerek II. Dr. Mileff Péter A számítógép-hálózatok rohamos terjedésével a hálózattal összekapcsolt számítógépekbıl álló rendszerek egyre népszerőbbek: Erıforrás

Részletesebben

Enterprise Java Beans. EJB - Általános bevezető

Enterprise Java Beans. EJB - Általános bevezető Enterprise Java Beans EJB - Általános bevezető EJB Sun definíció: The Enterprise JavaBeans architecture is a component architecture for the development and deployment of component-based distributed business

Részletesebben

A WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév

A WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév Általános jellemzők JavaServer Pages (JSP) Java utasításokat helyezetünk el a HTML lapon Ezket a Java utasításokat a kiszolgáló végrehajtja Az ügyfél felé generált tartalom: statikus HTML kód + Java utasítások

Részletesebben

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem A J2EE fejlesztési si platform (application model) 1.4 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. A J2EE application model A Java szabványok -

Részletesebben

Java RMI Áttekintés. A Java RMI. A Java RMI architektúrája. Ficsor Lajos. Általános Infromatikai Tanszék Miskolci Egyetem 1.

Java RMI Áttekintés. A Java RMI. A Java RMI architektúrája. Ficsor Lajos. Általános Infromatikai Tanszék Miskolci Egyetem 1. Java RMI Áttekintés Miskolci Egyetem Általános Informatikai Tanszék RMI /1 A Java RMI RPC - egy távoli eljárás hívása helyi hívásnak tÿnik RMI - hasonló mechanizmust biztosít, de objektum orientált módon:

Részletesebben

Java programozási nyelv 4. rész Osztályok II.

Java programozási nyelv 4. rész Osztályok II. Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék

Részletesebben

Programozási nyelvek II.: JAVA

Programozási nyelvek II.: JAVA Programozási nyelvek II.: JAVA 13. gyakorlat 2017. december 11-15. 13. gyakorlat Programozási nyelvek II.: JAVA 1 / 32 Az 13. gyakorlat tematikája Generikus típusokés öröklődés Clone Comparator Névtelen

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

Részletesebben

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

JavaServer Pages (JSP) (folytatás)

JavaServer Pages (JSP) (folytatás) JavaServer Pages (JSP) (folytatás) MVC architektúra a Java kiszolgálón Ügyfél (Böngésző) 5 View elküldi az oldal az ügyfélez View (JSP) Ügyfél üzenet küldése a vezérlőnek 1 3 4 Kérelem továbbítása a megjelenítőnek

Részletesebben

OOP: Java 4.Gy: Java osztályok

OOP: Java 4.Gy: Java osztályok OOP: Java 4.Gy: Java osztályok. 36/1 B ITv: MAN 2019.03.02 Feladat Készítsen el egy Employee osztályt és egy Employee osztályt használó osztályt (EmpProgram). Az Employee osztálynak: van name és salary

Részletesebben

Java III. I I. Osztálydefiníció (Bevezetés)

Java III. I I. Osztálydefiníció (Bevezetés) Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban

Részletesebben

Java programozási nyelv 5. rész Osztályok III.

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

JEE tutorial. Zsíros Levente, 2012

JEE tutorial. Zsíros Levente, 2012 JEE tutorial Zsíros Levente, 2012 A J2EE részei Webkonténer Szervletek JSP oldalak EJB (Enterprise Java Bean) konténer Session Bean Entity Bean (Java Persistence API-t használják) A Glassfish és JBoss

Részletesebben

Java III. I I. Osztálydefiníció (Bevezetés)

Java III. I I. Osztálydefiníció (Bevezetés) Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban

Részletesebben

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform

Részletesebben

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit. Sapientia - EMTE 2008 Az előadás célja JPA - - perzisztencia ORM - - Objektumrelációs leképzés - Entitásbabok Állandóság Mechanizmus amely során az alkalmazás adatai megőrzésre kerülnek valamely perzisztens

Részletesebben

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1 DCOM Áttekintés Miskolci Egyetem Általános Informatikai Tanszék DCOM /1 Mi a DCOM? DCOM: Distributed Component Object Model A Microsoft osztott objektum modellje Bináris együttmÿködési szabvány és annak

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,

Részletesebben

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 12. előadás Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014.

Részletesebben

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1 Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma

Részletesebben

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22 Szerializáció Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 1 / 22 Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Bevezetés Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Információk Képzés Programtervező Informatikus BSc, nappali tagozat, C szakirány Tárgykód: IP-17cPROGT1EG Előfeltétel

Részletesebben

Java RMI Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. javarmi / 1

Java RMI Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. javarmi / 1 Java RMI Áttekintés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 05. javarmi / 1 A Java RMI RPC - egy távoli eljárás hívása helyi hívásnak tűnik RMI - hasonló mechanizmust

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. október 9. 5. El adás Interface-ek Korábban már említettem az interface-eket. Akkor úgy fogalmaztam, hogy valamilyen tulajdonságot adnak az osztályoknak. A lényegüket talán

Részletesebben

Collections. Összetett adatstruktúrák

Collections. Összetett adatstruktúrák Collections Összetett adatstruktúrák Collections framework Előregyártott interface-ek és osztályok a leggyakoribb összetett adatszerkezetek megvalósítására Legtöbbször módosítás nélkül használhatók Időt,

Részletesebben

XML adatkezelés I. Az SAX szabvány. Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék. XML adatok kezelési lehetőségei

XML adatkezelés I. Az SAX szabvány. Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék. XML adatok kezelési lehetőségei XML adatkezelés I. Az szabvány Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék XML adatok kezelési lehetőségei szövegszerkesztő API XML DOM API XSL XQUERY Az XML dokumentumok feldolgozó

Részletesebben

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary Oracle Containers for Java - j2ee alkalmazás szerver funkciók Molnár Balázs Oracle Hungary Mi is a J2EE? Szabványgyűjtemény Java alkalmazások számára A JavaSoft közösség alakította ki Összefogja az egyéni

Részletesebben

OOP és UML Áttekintés

OOP és UML Áttekintés OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés

Részletesebben

Java Programozás 11. Ea: MVC modell

Java Programozás 11. Ea: MVC modell Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát

Részletesebben

Globális operátor overloading

Globális operátor overloading Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal

Részletesebben

BME MOGI Gépészeti informatika 8.

BME MOGI Gépészeti informatika 8. BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező

Részletesebben

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció Serialization (in Java) Szerializáció Java Serialization API Standard eljárás az objektumok állapotának adatfolyamba történő kiírására (elmentésére egy bájtszekvenciába), és visszatöltésére Perzisztencia

Részletesebben

ANDROID ALKALMAZÁSFEJLESZTÉS

ANDROID ALKALMAZÁSFEJLESZTÉS ANDROID ALKALMAZÁSFEJLESZTÉS Adattárolás SharedPreference Belső - külső tároló PreferenceActivity Felhő alapú tárolás SQLite sicz.mj[tekercs]gmail.com Sicz-Mesziár János 2013. július 3. Shared Preference

Részletesebben

Bevezetés a Java programozási nyelvbe

Bevezetés a Java programozási nyelvbe Bevezetés a Java programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a Java programozási nyelvbe JAVABEV / 1 Egy kis történelem 1. 1990-es évek eleje: a SUN belső project-je

Részletesebben

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server Kompozit alkalmazások fejlesztése IBM WebSphere Portal Server Portletek -összefoglaló Portlet: portálba integrálható kisalkalmazás Szabványok JSR 168 Portlet 1.0 (IBM API) JSR 286 Portlet 2.0 Dióhéjban

Részletesebben

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés Kivételek kezelése (exception handling) Hibakezelés old style class Szamolo { void szamol( String s, int i ) { int d; if (i!= 0) d = (i+1)/i; else if (s!= null) d = s.length(); else if (i > 10) // applikációs

Részletesebben

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak

Részletesebben

Java I. A Java programozási nyelv

Java I. A Java programozási nyelv Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás

Részletesebben

Áttekintés. Tartalom. Mi is az a Bean?

Áttekintés. Tartalom. Mi is az a Bean? A JavaBeans komponens modell Áttekintés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja a TEMPUS S_JEP-12495-97 Network Computing Chapter 8 Developing of Network

Részletesebben

Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék

Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék A JavaBeans komponens modell Áttekintés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja a TEMPUS S_JEP-12495-97 Network Computing Chapter 8 Developing of Network

Részletesebben

Generikus Típusok, Kollekciók

Generikus Típusok, Kollekciók Generikus Típusok, Kollekciók Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Generikus Típusok, Kollekciók 2013 1 / 26 Tartalomjegyzék 1 Enumeráció 2 Generikus Típusok 3 Kollekciók System.Collections

Részletesebben

Java programozási nyelv 6. rész Java a gyakorlatban

Java programozási nyelv 6. rész Java a gyakorlatban Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Osztályszintű elérés Kivételkezelés, Fájlkezelés Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Osztályszintű elérés (statikusság) Az osztályban definiált attribútumok és műveletek

Részletesebben

Access adatbázis elérése OLE DB-n keresztül

Access adatbázis elérése OLE DB-n keresztül Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is

Részletesebben

Párhuzamos és Elosztott Rendszerek II

Párhuzamos és Elosztott Rendszerek II Párhuzamos és Elosztott Rendszerek II JAVA RMI Készítette: Dr. Mileff Péter Miskolci Egyetem Általános Informatikai Tanszék 1. Bevezetés A számítógép-hálózatok rohamos terjedésével a hálózattal összekapcsolt

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát

Részletesebben

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés

Részletesebben

Szoftvertechnolo gia gyakorlat

Szoftvertechnolo gia gyakorlat Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot

Részletesebben

7. K: JAVA alapok Konzultáció

7. K: JAVA alapok Konzultáció Objektum Orientált Programozás 7. K: JAVA alapok Konzultáció 35/1B IT MAN B IT v: 2017.05.03 MAN Hiba, biztonságos program 01. Szintaktikai hiba imt i = 0; system.out.println( alma ); for (int i = 0, i

Részletesebben

Concurrency in Swing

Concurrency in Swing Concurrency in Swing A szálkezelés a swing alkalmazásokban is fontos. Cél egy olyan felhasználói felület készítése, amely soha nem fagy, mindig válaszol a felhasználói interakciókra, bármit is csináljon

Részletesebben

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18 C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18 Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi

Részletesebben

JAVA webes alkalmazások

JAVA webes alkalmazások JAVA webes alkalmazások Java Enterprise Edition a JEE-t egy specifikáció definiálja, ami de facto szabványnak tekinthető, egy ennek megfelelő Java EE alkalmazásszerver kezeli a telepített komponensek tranzakcióit,

Részletesebben

A JavaServer Pages (JSP)

A JavaServer Pages (JSP) A JavaServer Pages (JSP) Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 27. JSP Harmadik generáci ciós s WEB szerver A dinamikus lap a tipikus Dinamikus

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 2. gyakorlat 1 Osztályok és objektumok default, public, protected, private láthatóság a metódusokra és adattagokra (első

Részletesebben