, ejb 3 giver mulighed for at fastlægge database enhed forbindelser /konverteringer som en til, at mange til en, og mange mange forhold.følgende er de relevante anmærkninger.,,,, onetoone - genstande er under én til én.for eksempel, en passager kan rejse med en enkelt billet til tiden.,,,, onetomany - genstande er under én for mange forhold.for eksempel, en far kan have flere børn.,,,, manytoone - genstande har mange til et forhold.for eksempel, flere børn under en enlig mor,,,,, manytomany - genstande har mange mange forhold.for eksempel, en bog har dissemineret forfattere og en forfatter kan skrive flere bøger,.,,, vil vi demonstrere anvendelse af manytomany kortlægning.at repræsentere manytomany forhold, tre tabeller er påkrævet.,,,, bog, bog tabel under registreringer af bøger,,,, forfatter - forfatter tabel med fortegnelser over forfatter,,,, book_author, - book_author tabel med sammenkobling af ovennævnte bog og forslagsstiller.,,, skabe tabeller, skabe et tab. bog, forfatter, book_author i misligholdelse database, postgres,., skabe tabel bog (book_id heltal, navn varchar (50), skabe tabel forfatter (author_id heltal, navn varchar (50), skabe tabel book_author (book_id tal, author_id heltal), skabe enhed klasser, @ enhed @ tabel (navn = "forfatter") offentlige klasse forfatter gennemfører serializable (private int id; private snor navn...}, @ enhed @ tabel (navn = "bog") offentlige klasse bog gennemfører serializable (private int id; private snor afsnit; private < forfatter > forfattere.}, anvendelse manytomany anmærkning i bog enhed @ enhed offentlige klasse bog gennemfører serializable {...@ manytomany (c = {cascadetype.persist, cascadetype. fusionere}, hent = fetchtype. ivrig) @ jointable (tabel = @ tabel (navn = "book_author"), joincolumns = {@ joincolumn (navn = "book_id"), inversejoincolumns = {@ joincolumn (navn = "author_id")}) offentlige sæt < forfatter > getauthors() {tilbage forfattere.}.}, f.eks. ansøgning, lad os skabe en test ejb anvendelse for at teste enhed forhold objekter i ejb 3.0, stepdescription 1create et projekt med et navn, ejbcomponent under en pakke, com.tutorialspoint.entity, som forklaret i den, ejb - skabe anvendelse, kapitel.anvend det projekt, der blev skabt i, ejb - persistens, kapitel som sådan i dette kapitel at forstå indbyggede objekter i ejb begreber.2create, author.java under - pakken, com.tutorialspoint.entity, som forklaret i den, ejb - skabe anvendelse, kapitel.hold resten af filerne uændret.3create, book.java under - pakken, kom. tutorialspoint. enhed.brug ejb - persistens, kapitel som reference.hold resten af filerne uændret.4clean og opbygge anvendelse for at sikre, at erhvervslivet logik er at arbejde som pr. kravene.5finally, anvende anvendelse i form af jar - fil på jboss applikationsserver.jboss applikationsserver vil starte automatisk, hvis det ikke er begyndt endnu.6now skabe ejb klient, en konsol baseret på anvendelse på samme måde som forklaret i, ejb - skabe anvendelse, kapitel under emne, skabe klient adgang til ejb,., ejbcomponent (ejb modul), author.java, pakke com.tutorialspoint.entity; import java.io.serializable; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.table; @ enhed @ tabel (navn = "forfatter") offentlige klasse forfatter gennemfører serializable (private int id; private snor navn; de offentlige author() {} offentlige forfatter (int id, snor navn) (this.id = id. this.name = navn} @ id @ generatedvalue (strategi = generationtype. identitet) @ kolonne (navn = "author_id") offentlige int getid() {tilbage id.} offentlige tomrum setid int (id) (this.id = id.}offentlige snor getname() {navn} offentlige tomrum tilbage; setname (string navn) (this.name = navn} offentlige snor tostring() {tilbage id + "," + navn}}, book.java, pakke com.tutorialspoint.entity; import java.io.serializable; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.table; import javax.persistence.generatedvalue; import javax.persistence.generationtype; @ enhed (tab. (navn = "bog") offentlige klasse bog gennemfører serializable (private int id; private snor navn; private < forfatter > forfattere, offentlige book() {} @ id @ generatedvalue (strategi = generationtype. identitet) @ kolonne (navn = "book_id") offentlige int getid () (tilbagevenden id.} offentlige tomrum setid int (id) (this.id = id.} offentlige snor getname() {navn} offentlige tomrum tilbage; setname (string navn) (this.name = navn} offentlige tomrum setauthors (< forfatter > forfattere) (this.authors = ophavsmænd;} @ manytomany (c = (cascadetype.persist, cascadetype. fusionere}, hent = fetchtype. ivrig) @ jointable (tabel = @ tabel (navn = "book_author"), joincolumns = {@ joincolumn (navn = "book_id"), inversejoincolumns = {@ joincolumn (navn = "author_id")}) offentlige fastsat < forfatter > getauthors() {tilbage ophavsmænd;}}, librarypersistentbeanremote.java, pakke com.tutorialspoint.stateless; import com.tutorialspoint.entity. bog, import - java.util.list; import javax.ejb.remote; @ fjerntliggende offentlig grænseflade librarypersistentbeanremote {tomrum addbook (bog bookname); listen < bog > getbooks();}, librarypersistentbean.java, pakke com.tutorialspoint.stateless; import com.tutorialspoint.entity.book; import java.util.list; import javax.ejb.stateless; import javax.persistence.entitymanager; import javax.persistence.persistencecontext; @ statsløse offentlige klasse librarypersistentbean gennemfører librarypersistentbeanremote {offentlige librarypersistentbean() {} @ persistencecontext (unitname = "ejbcomponentpu") private entitymanager entitymanager; offentlige tomrum addbook (bog, bog) (entitymanager. fortsætter (bog)} puder liste < bog > getbooks() {tilbage entitymanager. createquery ("fra bog"). getresultlist();}},,,,,,, så snart du indsætte ejbcomponent projekt om jboss, bemærker de jboss log.,,, jboss automatisk er skabt en jndi adgang til vores møde, bønne -, librarypersistentbean /fjerntliggende,.,,, vi vil anvende denne lookup tråde for at få isolerede forretninger er genstand for type -, kom. tutorialspoint. interceptor. librarypersistentbeanremote,,,, jboss applikationsserver log produktion.16:30:01401 info [jndisessionregistrarbase] bindende følgende punkter i den globale jndi: librarypersistentbean /fjern - ejb3. x misligholdelse fjerntliggende virksomheder grænseflade librarypersistentbean /remote-com.tutorialspoint.interceptor.librarypersistentbeanremote - ejb3. x fjerntliggende virksomheder grænseflade 16:30:02723 info [sessionspeccontainer] begynder jboss. j2ee tingelser [...]: jar jar navn = = ejbcomponent. librarypersistentbean, service = ejb3 16:30:02723 info [ejbcontainer] begyndte ejb - com.tutorialspoint.interceptor.librarypersistentbeanremote ejbname: librarypersistentbean 16:30:02731 info [jndisessionregistrarbase] bindende følgende punkter i den globale jndi: librarypersistentbean /fjern - ejb3. x misligholdelse fjerntliggende virksomheder grænseflade librarypersistentbean /remote-com.tutorialspoint.interceptor.librarypersistentbeanremote - ejb3. x fjerntliggende virksomheder grænseflade., ejbtester (ejb klient), jndi.properties, java. navngivning. første = org.jnp.interfaces.namingcontextfactory java. navngivning. url. pkgs = org. jboss. navn: org.jnp.interfaces java. navngivning. udbyder. url = localhost, disse egenskaber bruges til at nulstille initialcontext objekt for java, at tjeneste,,, initialcontext objekt, vil blive anvendt til at lookup statsløse samling bean,,, ejbtester.java, pakke com.tutorialspoint.test; import com.tutorialspoint.stateful.librarybeanremote; import java.io.bufferedreader; import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstreamreader; import java. util. *; import javax.naming.initialcontext; import javax.naming.namingexception; offentlige klasse ejbtester {bufferedreader brconsolereader = null egenskaber rekvisitter. initialcontext ctx; (rekvisitter = nye properties(); prøve (rekvisitter. belastning (nye fileinputstream ("jndi. egenskaber")} fangst (ioexception ex) (ex. printstacktrace();} prøve (ctx = nye initialcontext (-);} fangst (namingexception ex) (ex. printstacktrace();} brconsolereader = nye bufferedreader (nye inputstreamreader (system. i)} offentlige statisk tomrum vigtigste (string [] args) (ejbtester ejbtester = nye ejbtester(); ejbtester. testembeddedobjects();} private tomrum showgui() {system. println ("**********************"); system. println ("velkommen til boghandel") system. println ("**********************"); system. tryk ("muligheder. n1.tilføj bog. n2.exit. nenter valg: ");} private tomrum testembeddedobjects() (prøve (int valg = 1; librarypersistentbeanremote librarybean = (librarypersistentbeanremote) ctx. lookup (" librarypersistentbean /fjerntliggende "), mens (valg!= 2) {snor bookname; snor authorname; showgui(); snor strchoice = brconsolereader. readline(); valg = tal. parseint (strchoice); hvis (valg = = 1) (system. tryk ("enter bog hedder:"); bookname = brconsolereader. readline(); system. tryk ("enter forfatterens navn:"); authorname = brconsolereader. readline(); bog, bog = nye book(); bog. setname (bookname); ophavsmand = nye author(); forfatter. setname (authorname), < forfatter > forfattere = nye hashset < forfatter > c), tilsættes (forfattere. forfatteren); bog. setauthors (authors); librarybean. addbook (bog)} andre, hvis (valg = = 2) {pause.}} liste < bog > bookslist = librarybean. getbooks(); system. println ("bog (er), der er opført så vidt:" + bookslist. size()); int i = 0; (bog, bog: bookslist) (system. println (i + 1) + "."+ bog. getname()); system. tryk ("forfatter:"); forfatter [] forfattere = (forfatter []) bøger. getauthors(). toarray(); int (j = 0 j < forfattere. længde j + +) (system. println (forfattere [j]);} jeg + +) fangst (undtagen e) (system. println (f. getmessage()); f. printstacktrace();} {{(brconsolereader endelig prøve!= null) (brconsolereader. close();}} fangst (ioexception ex) (system. println (eks. getmessage())}}}}, ejbtester udfører følgende opgaver,.,,, last egenskaber fra jndi.properties og nulstille initialcontext objekt.,,, testinterceptedejb() metode, jndi lookup er færdig med navn - "librarypersistencebean /fjerntliggende" for at få fjernbetjeningen business objekt (statsløse ejb).,,, så brugeren er vist et bibliotek butik brugergrænseflade, og han /hun bliver bedt om at træde valg.,,, hvis brugeren indtaster 1, system kræver bog navn og redder bog ved hjælp af statsløse samling bean addbook() metode.samling bean er lagring af bogen i databasen.,,, hvis brugeren indtaster 2, systemet har bøger ved hjælp af statsløse samling bean getbooks() metode og udgange.,,, løb klient adgang til ejb, find ejbtester.java i projektet udforsker.højreklik på ejbtester klasse og udvælge, løb fil,., kontrollere følgende output i netbeans konsol. løb: ********************** velkommen til boghandel ********************** muligheder. 1.tilføj bog 2.udførsel træde valg: 1 træde bog navn: lære html5 træde forfatter navn: robert ********************** velkommen til boghandel ********************** muligheder. 1.tilføj bog 2.udførsel træde valg: 2 bog (er), der er opført så vidt: 1 1.lære html5 forfatter: robert bygge vellykkede (i alt: 21 sekunder)
ejb enhed forhold
Previous:ejb jndi bindinger
Next Page:ejb access database