翻译文献-实体bean介绍_第1页
翻译文献-实体bean介绍_第2页
翻译文献-实体bean介绍_第3页
翻译文献-实体bean介绍_第4页
翻译文献-实体bean介绍_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

外文原文INTRODUCTIONTOENTITYBEANSINCHAPTERS36,YOULEARNEDHOWTOCODESESSIONBEANSDISTRIBUTEDCOMPONENTSTHATREPRESENTBUSINESSPROCESSESBUTSESSIONBEANSAREONLYHALFOFWHATENTERPRISEJAVABEANSHASTOOFFERONEOFTHEKEYBENEFITSOFEJBISTHEPOWERTOCREATEENTITYBEANSENTITYBEANSAREPERSISTENTOBJECTSTHATCANBESTOREDINPERMANENTSTORAGETHISMEANSYOUCANMODELYOURBUSINESSSFUNDAMENTAL,UNDERLYINGDATAASENTITYBEANSWELLSEEEXACTLYWHATTHISMEANSINTHEPAGESTOCOMEINTHISCHAPTER,WELLCOVERTHESETOPICSTHEBASICCONCEPTSOFPERSISTENCEADEFINITIONOFENTITYBEANS,FROMAPROGRAMMERSPERSPECTIVETHEFEATURESTHATENTITYBEANSHAVETOOFFERHOWENTITYBEANSCOMPAREWITHSESSIONBEANSENTITYBEANPROGRAMMINGCONCEPTSENTITYBEANSAREANOPTIONALPARTOFENTERPRISEJAVABEANS10EVENIFYOUREJBCONTAINERISCOMPLIANTWITHEJB10,THEEJBCONTAINERMAYNOTBEABLETOHANDLEENTITYBEANSIFYOUNEEDENTITYBEANS,MAKESUREYOUCHOOSEACONTAINERCAPABLEOFDEPLOYINGTHEMEJB11,WHICHISPARTOFJAVA2PLATFORM,ENTERPRISEEDITIONJ2EE,MANDATESENTITYBEANSUPPORTTHISCHAPTERISRELATIVELYTHEORETICAL,ANDITISMEANTTOGIVEYOUADEEPFOUNDATIONINENTITYBEANPROGRAMMINGCONCEPTSFORTHOSEOFYOUWITHATRADITIONALPROCEDURALPROGRAMMINGBACKGROUND,ENTITYBEANSCANBEAVERYTOUGHTOPICTOGRASPYOUMAYNEEDTOREREADTHISCHAPTERAFEWTIMESTOREALLYUNDERSTANDHOWTHINGSWORKMAKESUREYOUVEREADANDUNDERSTOODTHEPREVIOUSCHAPTERSINTHISBOOKOURDISCUSSIONOFENTITYBEANSWILLBUILDONTHEKNOWLEDGEYOUVEACQUIREDSOFARWELLUSETHESECONCEPTSWITHHANDSONCODEINCHAPTERS8AND9PERSISTENCECONCEPTSBECAUSEENTITYBEANSAREPERSISTENTOBJECTS,OURDISCUSSIONBEGINSWITHAQUICKLOOKATPOPULARWAYSTOPERSISTOBJECTSJAVAOBJECTSERIALIZATIONWHENYOUWORKWITHJAVAOBJECTS,INMANYCASESYOUWOULDLIKETOCAPTURETHESTATEOFTHEOBJECTYOURECURRENTLYWORKINGWITHANDSAVEITTOAPERMANENTSTORAGEONEWAYTODOTHIS,ASCOVEREDINAPPENDIXA,ISTOUSEOBJECTSERIALIZATIONOBJECTSERIALIZATIONISANEASYWAYTOMARSHALANOBJECTGRAPHINTOACOMPACTREPRESENTATIONWHENYOUSERIALIZEANOBJECTGRAPH,YOUCONVERTTHEGRAPHINTOABYTESTREAMYOUCANTHENDOANYTHINGYOUWANTTOWITHTHATSTREAM,SUCHASPUSHTHEDATAOVERTHENETWORKWHICHISHOWJAVARMIPASSESPARAMETERSOVERTHENETWORK,ORYOUCANSAVETHESTREAMTOASTORAGE,SUCHASAFILESYSTEM,DATABASEORJNDITREEFORSOPHISTICATEDPERSISTENCE,HOWEVER,OBJECTSERIALIZATIONFALLSSHORTINMANYAREASFOREXAMPLE,LETSSAYWESTOREAMILLIONSERIALIZABLEBANKACCOUNTOBJECTSONTOAFILESYSTEMWEDOTHISBYCONVERTINGTHEOBJECTSTOTHEIRBITBLOBREPRESENTATIONANDTHENSTORINGTHEBYTESONDISKLETSSAYWETHENWANTTORETRIEVEALLBANKACCOUNTSTHATHAVEBALANCESOVER1000TODOTHISWITHSERIALIZATION,WEDHAVETOLOADEACHANDEVERYBANKACCOUNTSERIALIZEDBITBLOBFROMTHEDISK,CONSTRUCTTHECORRESPONDINGOBJECT,ANDTHENEXECUTEAMETHODQUERYONTHEOBJECTTODETERMINEIFTHEBALANCEISOVER1000WEMIGHTWANTTOPERFORMMOREADVANCEDQUERIESASWELL,SUCHASRETRIEVINGALLCHECKINGACCOUNTSTHATHAVEBEENINACTIVEFORSIXMONTHSTHEREISNOEFFICIENTWAYTODOTHISWITHOBJECTSERIALIZATIONINGENERAL,QUERYINGOBJECTSSTOREDUSINGOBJECTSERIALIZATIONISVERYEXPENSIVEANDCUMBERSOMESUBMITTINGQUERIESAGAINSTBUSINESSDATAISANABSOLUTENECESSITYFORLARGESCALEAPPLICATIONS,WHICHMAKESSIMPLEOBJECTSERIALIZATIONUNSUITABLEFORPERSISTENTSTORAGEWHILEOBJECTSERIALIZATIONHASITSPURPOSE,ITISBESTUSEDINRESTRICTEDDOMAINS,SUCHASFORNETWORKCOMMUNICATIONSANDSIMPLEPERSISTENCEFOREJB,WELLNEEDAMOREROBUSTPERSISTENCEMECHANISMTOADDRESSMORECOMPLEXQUERYINGOPERATIONSOBJECTRELATIONALMAPPINGANOTHERPOPULARWAYTOSTOREJAVAOBJECTSISTOUSEATRADITIONALRELATIONALDATABASE,SUCHASORACLEORMICROSOFTSQLSERVERRATHERTHANSERIALIZEEACHOBJECT,INTRODUCTIONTOENTITYBEANS177GOBACKTOTHEFIRSTPAGEFORAQUICKLINKTOBUYTHISBOOKONLINEWECOULDDECOMPOSEEACHOBJECTINTOITSCONSTITUENTPARTSANDSTOREEACHPARTSEPARATELYFOREXAMPLE,FORABANKACCOUNTOBJECT,THEBANKACCOUNTNUMBERCOULDBESTOREDINONERELATIONALDATABASEROW,WHILETHEBANKACCOUNTBALANCECOULDBESTOREDINANOTHERROWWHENYOUSAVEYOURJAVAOBJECTS,YOUWOULDUSEJDBCORSQL/JTOMAPTHEOBJECTDATAINTOARELATIONALDATABASEYOUCOULDALSOSTORETHENAMEOFTHEJAVACLASSTHATTHISDATACORRESPONDSTO,SOTHATYOUKNOWWHICHCLASSTOINSTANTIATEWHENREADINGTHEOBJECTBACKFROMTHEDATABASEWHENYOUWANTTOLOADYOUROBJECTSFROMTHEDATABASE,YOUDFIRSTINSTANTIATEANOBJECTFROMTHATCLASS,READTHEDATAINFROMTHEDATABASE,ANDTHENPOPULATETHATOBJECTINSTANCESFIELDSWITHTHERELATIONALDATAREADINTHISISSHOWNINFIGURE71THISMAPPINGOFOBJECTSTORELATIONALDATABASESISATECHNOLOGYCALLEDOBJECTRELATIONALMAPPINGITISTHEACTOFCONVERTINGANDUNCONVERTINGINMEMORYOBJECTSTORELATIONALDATAANOBJECTRELATIONALO/RMAPPERCOULDUSEANYKINDOFUNDERLYINGDATABASESCHEMAFOREXAMPLE,ITCOULDTRANSLATEAJAVAOBJECTINTOASINGLERELATIONALRECORDITCOULDTHENRETRIEVETHATRECORDATALATERTIMETORECONSTRUCTANOBJECTINMEMORYFORYOUTOUSEOBJECTRELATIONALMAPPINGASAPERSISTENCEMECHANISMISAMUCHMORESOPHISTICATEDMECHANISMOFPERSISTINGOBJECTSTHANSIMPLEOBJECTSERIALIZATIONBYDECOMPOSINGYOURJAVAOBJECTSASRELATIONALDATA,YOUCANISSUEARBITRARYQUERIESFORINFORMATIONFOREXAMPLE,YOUCANSEARCHTHROUGHALLTHEDATABASERECORDSTHATHAVEANACCOUNTBALANCEENTRYGREATERTHAN1000ANDLOADONLYTHEOBJECTSTHATFULFILLTHISQUERYMOREADVANCEDQUERIESAREALSOPOSSIBLEMAPPINGOFOBJECTSTORELATIONALDATACANBEDONEINTWOWAYSYOUCANEITHERHANDCRAFTTHISMAPPINGINYOURCODEORUSEANOBJECTRELATIONALMAPPINGPRODUCTSUCHASOBJECTPEOPLESTOPLINKORSUNSJAVABLENDTOAUTOMATEORFACILITATETHISMAPPINGTODAY,MOSTUSERSHANDCRAFTTHEMAPPINGUSINGADATABASEACCESSAPISUCHASJDBCORSQL/JBECAUSETHECOSTOFDEVELOPINGANDMAINTAININGANOBJECTRELATIONALMAPPINGLAYERISSIGNIFICANT,ITISLIKELYTHATTHEOBJECTRELATIONALMAPPINGPRODUCTSWILLBEADOPTEDASTHEYMATUREOBJECTDATABASESANOBJECTDATABASEMANAGEMENTSYSTEMODBMSISAPERSISTENTSTORETHATHOLDSENTIREOBJECTSINANOBJECTDATABASE,YOUROBJECTSAREFIRSTCLASSCITIZENSINTHEDATABASETHISMEANSTHEREISNOO/RMAPPINGLAYERYOURJAVAOBJECTSTHEMSELVESARESTOREDASWHOLEOBJECTSBECAUSEOFTHIS,YOUDONTNEEDTOPROGRAMTOARELATIONALDATABASEAPIRATHER,YOUPROGRAMTOTHEOBJECTDATABASESAPITHISMEANSYOUCANSIDESTEPOBJECT/RELATIONALMAPPING,RESULTINGINSIMPLIFIEDDATAACCESSCODEMOSTOBJECTDATABASESANDO/RMAPPINGPRODUCTSPROVIDEFACILITIESTOQUERYPERSISTEDOBJECTSBYUSINGANOBJECTQUERYLANGUAGEOQLOQLISANICEHIGHLEVELINTERFACETHATALLOWSYOUTOQUERYOBJECTPROPERTIESFORARBITRARYCHARACTERISTICSITALSOADDSALAYEROFABSTRACTIONFROMRELATIONALDATABASEQUERIESINADDITIONTOOQLBASEDQUERIES,OBJECTDATABASESSUPPORTRELATIONSHIPSBETWEENOBJECTSYOUCOULDDEFINEARELATIONSHIPBETWEENABANKACCOUNTOBJECTANDACUSTOMEROBJECTANDTRANSPARENTLYNAVIGATEBETWEENTHEMTHETRANSPARENTNAVIGATIONMAKESITEASYTONAVIGATETHEOBJECTMODELANDHASEXCELLENTPERFORMANCEWHENCOMPAREDTOSQLBASEDJOINSTHATARENEEDEDTOPERFORMEQUIVALENTOPERATIONSINRELATIONALDATABASESOBJECTDATABASESALSOHAVEVERYPREDICTABLEPERFORMANCEANDSCALABILITYTHEYOFFERVERYSTRONGINTEGRITYANDSECURITY,ANDTHEYPROVIDEANEXCELLENTSTOREFORINTRODUCTIONTOENTITYBEANS179GOBACKTOTHEFIRSTPAGEFORAQUICKLINKTOBUYTHISBOOKONLINECOMPLEXPERSISTENTOBJECTSTHEREARECERTAINAPPLICATIONSTHATGOREALLYWELLWITHOBJECTDATABASESGEOSPATIALORCAD/CAM,FOREXAMPLETHATARECOMPLETEMISFITSFORRELATIONALDATABASESTHEREAREOTHERAPPLICATIONSTHATMAPEASILYTORELATIONALDATABASES,SUCHASMOSTBUSINESSAPPLICATIONSFORSIMPLEHIGHVOLUMEBUSINESSTRANSACTIONS,RELATIONALDATABASESTYPICALLYSCALEBETTERTHANOBJECTDATABASESOBJECTSTORE,VERSANT,ANDPOETAREAFEWOFTHECURRENTVENDORSWHOPROVIDEOBJECTDATABASETECHNOLOGYUNFORTUNATELY,OBJECTDATABASEPRODUCTSHAVENOTYETBEENFULLYEMBRACEDBYTHEINDUSTRYALTHOUGHTHEYAREVERYUSEFULFORCERTAINAPPLICATIONS,OBJECTDATABASESARECURRENTLYLIMITEDBECAUSETHEYDONTHAVEVERYMANYASSOCIATEDTOOLS,SUCHASREPORTING,TUNING,ANDMANAGEMENTTOOLSNOWTHATWEVEWHETTEDYOURAPPETITEWITHPERSISTENCEMECHANISMS,LETSTAKEALOOKATHOWENTITYBEANPERSISTENTOBJECTSAREUSEDINANEJBMULTITIERENVIRONMENTWHATISANENTITYBEANINANYSOPHISTICATED,OBJECTORIENTEDMULTITIERDEPLOYMENT,WECANDRAWACLEARDISTINCTIONBETWEENTWODIFFERENTKINDSOFCOMPONENTSDEPLOYEDAPPLICATIONLOGICCOMPONENTSTHESECOMPONENTSAREMETHODPROVIDERSTHATPERFORMCOMMONTASKSTHEIRTASKSMIGHTINCLUDETHEFOLLOWINGCOMPUTINGTHEPRICEOFANORDERBILLINGACUSTOMERSCREDITCARDCOMPUTINGTHEINVERSEOFAMATRIXNOTICETHATTHESECOMPONENTSREPRESENTACTIONSTHEYREVERBSTHEYAREWELLSUITEDTOHANDLEBUSINESSPROCESSESSESSIONBEANSMODELTHESEAPPLICATIONLOGICCOMPONENTSVERYWELLTHEYOFTENWILLCONTAININTERESTINGALGORITHMSANDLOGICTOPERFORMAPPLICATIONTASKSSESSIONBEANSREPRESENTWORKBEINGPERFORMEDFORAUSERTHEYREPRESENTTHEUSERSESSION,WHICHINCLUDESANYWORKFLOWLOGICPERSISTENTDATACOMPONENTSTHESEAREOBJECTSPERHAPSWRITTENINJAVATHATKNOWHOWTORENDERTHEMSELVESINTOPERSISTENTSTORAGETHEYUSESOMEPERSISTENCEMECHANISM,SUCHASSERIALIZATION,O/RMAPPINGTOARELATIONALDATABASE,ORANOBJECTDATABASETHESEKINDSOFOBJECTSREPRESENTDATASIMPLEORCOMPLEXINFORMATIONTHATYOUDLIKESAVEDEXAMPLESHEREINCLUDETHEFOLLOWINGBANKACCOUNTINFORMATION,SUCHASACCOUNTNUMBERANDBALANCEHUMANRESOURCESDATA,SUCHASNAMES,DEPARTMENTS,ANDSALARIESOFEMPLOYEESLEADTRACKINGINFORMATION,SUCHASNAMES,ADDRESSES,ANDPHONENUMBERSOFPROSPECTIVECUSTOMERSTHATYOUWANTTOKEEPTRACKOFOVERTIMENOTICETHATTHESECOMPONENTSREPRESENTPEOPLE,PLACES,ANDTHINGSTHEYRENOUNSTHEYAREWELLSUITEDTOHANDLEBUSINESSDATAYOUMIGHTQUESTIONTHENEEDFORSUCHPERSISTENTDATACOMPONENTSWHYSHOULDWEDEALWITHOURBUSINESSDATAASOBJECTS,RATHERTHANDEALINGWITHRAWDATABASEDATA,SUCHASRELATIONALROWSTHEANSWERISTHATITISVERYHANDYTOTREATDATAASOBJECTSBECAUSETHEYCANBEEASILYHANDLEDANDMANAGEDANDBECAUSETHEYAREREPRESENTEDINACOMPACTMANNERWECANGROUPRELATEDDATATOGETHERINAUNIFIEDOBJECTWEASSOCIATESOMESIMPLEMETHODSWITHTHATDATA,SUCHASCOMPRESSIONOROTHERDATARELATEDACTIVITIESWECANALSOGAINIMPLICITMIDDLEWARESERVICESFROMANAPPLICATIONSERVER,SUCHASTRANSACTIONS,NETWORKACCESSIBILITY,ANDSECURITYENTITYBEANSARETHESEPERSISTENTDATACOMPONENTSENTITYBEANSAREENTERPRISEBEANSTHATKNOWHOWTOPERSISTTHEMSELVESPERMANENTLYTOADURABLESTORAGESUCHASADATABASETHEYAREPHYSICAL,STORABLEPARTSOFANENTERPRISEENTITYBEANSSTOREDATAASFIELDS,SUCHASBANKACCOUNTNUMBERSANDBANKACCOUNTBALANCESTHEYALSOHAVEMETHODSASSOCIATEDWITHTHEM,SUCHASGETBANKACCOUNTNUMBERANDGETACCOUNTBALANCEENTITYBEANSCANALSOBEUSEDTOINTEGRATEWITHEXISTINGLEGACYENTERPRISEAPPLICATIONSINSOMEWAYS,ENTITYBEANSAREANALOGOUSTOSERIALIZABLEJAVAOBJECTSSERIALIZABLEOBJECTSCANBERENDEREDINTOABITBLOBANDTHENSAVEDINTOAPERSISTENTSTOREENTITYBEANSCANPERSISTTHEMSELVESINMANYWAYS,INCLUDINGSERIALIZATION,O/RMAPPING,OROBJECTDATABASEPERSISTENCETHEREISNOTHINGINTHEEJBSPECIFICATIONTHATDICTATESANYPARTICULARPERSISTENCEMECHANISMENTITYBEANSAREVERYDIFFERENTFROMSESSIONBEANSSESSIONBEANSMODELAPROCESSORWORKFLOWACTIONSTHATARESTARTEDBYTHEUSERANDTHATGOAWAYWHENTHEUSERGOESAWAYENTITYBEANS,ONTHEOTHERHAND,CONTAINCOREBUSINESSDATA,SUCHASPRODUCTINFORMATION,BANKACCOUNTS,ORDERS,LEADTRACKINGINFORMATION,CUSTOMERINFORMATION,ANDMOREANENTITYBEANDOESNOTPERFORMCOMPLEXTASKSORWORKFLOWLOGIC,SUCHASBILLINGACUSTOMERRATHER,ANENTITYBEANISTHECUSTOMERITSELFENTITYBEANSREPRESENTPERSISTENTSTATEOBJECTSTHINGSTHATDONTGOAWAYWHENTHEUSERGOESAWAYFOREXAMPLE,YOUMIGHTWANTTOREADBANKACCOUNTDATAINTOANENTITYBEANINSTANCE,THUSLOADINGTHESTOREDDATABASEINFORMATIONINTOTHEINMEMORYENTITYBEANINSTANCESFIELDSYOUCANTHENPLAYWITHTHEJAVAOBJECTANDMODIFYITSREPRESENTATIONINMEMORYBECAUSEYOUREWORKINGWITHCONVENIENTJAVAOBJECTS,RATHERTHANBUNCHESOFDATABASERECORDSYOUCANINCREASETHEBANKACCOUNTBALANCEINMEMORY,THUSUPDATINGTHEENTITYBEANSINMEMORYBANKACCOUNTBALANCEFIELDTHENYOUCANSAVETHEJAVAOBJECT,PUSHINGTHEDATABACKINTOTHEUNDERLYINGSTORETHISWOULDEFFECTIVELYDEPOSITMONEYINTOTHEBANKACCOUNTINGENERAL,YOUSHOULDUSEENTITYBEANSFORMODELINGDATAANDSESSIONBEANSFORMODELINGBUSINESSPROCESSESIFYOUDESIGNTHEMRIGHT,YOUSHOULDBEABLETOREUSEYOURENTITYBEANSASYOURBUSINESSPROCESSESCHANGEOVERTIMETHETERMENTITYBEANISGROSSLYOVERUSEDSOMETIMESITREFERSTOANINMEMORYJAVAOBJECTINSTANCEOFANENTITYBEANCLASS,ANDSOMETIMESITREFERSTODATABASEDATATHATANINMEMORYJAVAOBJECTINSTANCEREPRESENTSTOMAKETHEDISTINCTIONCLEAR,WEINTRODUCETWONEWTERMSTHEENTITYBEANINSTANCEISTHEINMEMORYVIEWINTOTHEDATABASEITISANINSTANCEOFYOURENTITYBEANCLASSTHEENTITYBEANDATAORDATAINSTANCEISTHEPHYSICALSETOFDATA,SUCHASABANKACCOUNTRECORD,STOREDINTHEDATABASEINSUMMARY,YOUSHOULDTHINKOFANENTITYBEANINSTANCEASTHEFOLLOWINGANINMEMORYJAVAREPRESENTATIONOFPERSISTENTDATASMARTENOUGHTOKNOWHOWTOREADITSELFFROMASTORAGEANDPOPULATEITSFIELDSWITHTHESTOREDDATAANOBJECTTHATCANTHENBEMODIFIEDINMEMORYTOCHANGETHEVALUESOFDATAPERSISTABLE,SOTHATITCANBESAVEDBACKINTOSTORAGEAGAIN,THUSUPDATINGTHEDATABASEDATAFILESINCLUDEDWITHENTITYBEANSLETSTAKEALOOKATTHEFILESTHATMAKEUPANENTITYBEANCOMPONENTTHEENTITYBEANCLASSISAJAVACLASSTHATMODELSPERSISTENTDATAANENTITYBEANCLASSMAPSTOANENTITYDEFINITIONINADATABASESCHEMAFOREXAMPLE,ANENTITYBEANCLASSCOULDMAPTOARELATIONALTABLEDEFINITIONINTHISCASE,ANENTITYBEANINSTANCEOFTHATCLASSWOULDMAPTOAROWINTHATTABLEYOURENTITYBEANCLASSCANEXPOSESIMPLEMETHODSTOMANIPULATEORACCESSTHATDATA,SUCHASAMETHODTODECREASEABANKACCOUNTBALANCELIKEASESSIONBEANCLASS,EJBALSOREQUIRESTHATANENTITYBEANCLASSMUSTFILLINSOMESTANDARDCALLBACKMETHODSTHEEJBCONTAINERWILLCALLTHESEMETHODSAPPROPRIATELYTOMANAGETHEENTITYBEANTHEENTITYBEANSREMOTEINTERFACEISTHEINTERFACETOYOURBEANSONWHICHCLIENTSINVOKEINIT,YOUSHOULDPLACEEACHOFYOURENTITYBEANSBUSINESSMETHODSIGNATURESYOUREJBCONTAINERVENDORPROVIDESTOOLSTOIMPLEMENTTHISREMOTEINTERFACETHEIMPLEMENTATIONISTHEENTITYBEANSEJBOBJECTTHEEJBOBJECTREPRESENTSALAYEROFINDIRECTIONBETWEENTHECLIENTANDTHEBEANCLIENTSINVOKEDIRECTLYONTHEEJBOBJECT,RATHERTHANONTHEENTITYBEANITSELFBECAUSETHEEJBOBJECTISPARTOFTHECONTAINER,ITCONTAINSLOGICTOINTERCEPTMETHODCALLSANDPERFORMMANAGEMENTTASKSONTHEBEANINSTANCEASNEEDEDTHISISEXACTLYTHESAMECONCEPTTHATWELEARNEDFORSESSIONBEANSTHEENTITYBEANSHOMEINTERFACEISTHEINTERFACECLIENTSUSETOCREATE,FIND,ANDDESTROYENTITYBEANEJBOBJECTSINIT,YOUSHOULDPUTTHEDIFFERENTPOSSIBLEMETHODSYOUDLIKEAVAILABLETOCREATENEWENTITYBEANEJBOBJECTS,ANDTOFINDORDESTROYOLDONESYOUREJBCONTAINERVENDORPROVIDESTOOLSTOIMPLEMENTTHISHOMEINTERFACETHEIMPLEMENTATIONISTHEENTITYBEANSHOMEOBJECTTHISHOMEOBJECTISTHEFACTORYFORYOUREJBOBJECTSTOFINDTHEHOMEOBJECT,YOURCLIENTSMUSTPERFORMAJNDILOOKUPTHISISEXACTLYTHESAMECONCEPTTHATWELEARNEDFORSESSIONBEANSTHEENTITYBEANSPRIMARYKEYCLASSISAUNIQUEIDENTIFIERFORYOURENTITYBEANPRIMARYKEYSMAKEEVERYENTITYBEANDIFFERENTFOREXAMPLE,IFYOUHAVEONEMILLIONDIFFERENTBANKACCOUNTENTITYBEANS,EACHBANKACCOUNTNEEDSTOHAVEAUNIQUEIDSUCHASABANKACCOUNTIDSTRINGTHATCANNEVERBEREPEATEDINANYOTHERBANKACCOUNTAPRIMARYKEYISANOBJECTTHATMAYCONTAINANYNUMBEROFATTRIBUTESTHISCOULDBEWHATEVERDATANECESSARYTOUNIQUELYIDENTIFYANENTITYBEANDATAINSTANCEINSOMEADVANCEDCASES,WHENTHEENTITYBEANREPRESENTSACOMPLEXRELATIONSHIP,THEPRIMARYKEYMIGHTBEANENTIREOBJECTEJBGIVESYOUTHEFLEXIBILITYTODEFINEWHATYOURUNIQUEIDENTIFIERISBYINCLUDINGAPRIMARYKEYCLASSWITHYOURENTITYBEANTHEONERULEISTHATYOURPRIMARYKEYCLASSMUSTBESERIALIZABLEANDFOLLOWTHERULESFORJAVAOBJECTSERIALIZATIONWEPRESENTTHERULESFOROBJECTSERIALIZATIONINAPPENDIXATHEENTITYBEANSDEPLOYMENTDESCRIPTORCONTAINSALISTOFPROPERTIESTHATSHOULDBEUSEDBYTHECONTAINERONDEPLOYMENTDEPLOYMENTDESCRIPTORSINFORMYOURCONTAINERABOUTYOURBEANTHEREARESOMENEWDEPLOYMENTDESCRIPTORENTRIESTHATAREPARTICULARTOENTITYBEANSWELLFINDOUTABOUTTHEMLATERTHEENTITYBEANSENVIRONMENTPROPERTIESALLOWENDUSERSTOCUSTOMIZEYOURENTITYBEANONDEPLOYMENTENVIRONMENTPROPERTIESAREOPTIONALANDAREUSEDINTHESAMEMANNERASFORSESSIONBEANSINORDERTOSHIPYOURENTITYBEANS,YOUSHOULDPACKAGETHESEFILESINANEJBJARFILE,WHICHISASIMPLEJAVAARCHIVEINCLUDEAMANIFESTFILEINTHEEJBJARFORLOCATINGYOURBEANWITHINTHEJAR,ANDYOUVEGOTASHIPPABLEENTITYBEANCOMPONENT英文译文实体BEAN介绍实体BEAN介绍在第36章,你已经学习了如何编写会话BEAN分布式组件来描述商务过程。但是会话BEAN只提供了部分的EJB。EJB的主要优势之一是创建实体BEAN的能力。实体BEAN是能够存放永久性存储空间的持久对象。这意味着你可以用实体BEAN来对你的商务中的基础数据建模。我们将在这章准确的了解。本章将讲述以下内容持久的基本概念从程序员的角度出发给实体BEAN的定义实体BEAN必备的特性实体BEAN和会话BEAN的比较实体BEAN编程概念实体BEAN是EJB10可选的部分。即使你的EJB容器适应EJB10,也可能不能运行实体BEAN。如果你需要实体BEAN,请确认你选择的容器能够开发它们。EJB11,是JAVA2的一部分,J2EE,要求实体BEAN支持。本章的内容相对来说比较理论化,但这也意味着,这部分内容将使你对实体BEAN编程概念有一个坚实的基础。对于那些有传统的过程化编程背景的人,掌握实体BEAN可能有困难。你可能需要重读几遍本章的内容,才能真正理解实体BEAN是如何工作的。确认你已经读过并理解了本书前几章的内容;我们将在你迄今为止获得的知识的基础上,展开对实体BEAN的讨论。在第8、9章中我们将使用以下的概念进行编程。持久的概念因为实体BEAN是持久化对象,首先简单地了解一下将对象持久化采用的常用方法。JAVA对象序列化当你操作JAVA对象时,在很多情况下你想要获得正在操作的对象的状态,并存放到一个永久存放的空间中。就像在附录A中介绍的那样,有一个方法可以做到这一点,这就是对象序列化。对象序列化是一种将对象轮廓转变为紧凑的表现形式的简易方法。对你序列化一个对象轮廓时,就是将它转换成一个字节流。你就可以对这个字节流做任何你想要做的处理,比如通过网络发送这些数据(也就是JAVARMI怎样通过网络传送参数),或者你金可以将这个字节流存放到一个存储空间中,例如文件系统,数据库和JNDI树。然而,对于复杂的持久化,对象序列化在很多方面存在缺陷。例如,假定我们想要存放100万个连续的银行账户对象到一个文件系统中。我们可以将这些对象转换为位块形式,然后存放到磁盘中。再假定我们想要提取所有余额超过1000元的银行账户。我们使用序列化来做到这一点,首先,从磁盘上加载每个银行账户序列化的位块,创建相应的对象,然后对这个对象执行一个查询方法,以判断余额是否大于1000元。我们也可能需要执行更高级的查询,比如检索所有的6个月没有进出帐的经常账户。如果不通过对象序列化,就没有有效的方法来做到这一点。一般来说,利用对象序列化来存储对象的代价非常昂贵,而且非常麻烦。对大规模的应用,提交基于商务数据的查询时绝对必要的,这使得简单的对象序列化不适合持久化存储。虽然对象序列化有自己的用途,它最好在有限的一些领域中,比如网络通信和对持久化要求不高等。对于EJB,我们需要更健壮的持久机制来处理更复杂的查询操作。对象关系型数据库映射存储JAVA对象的另一个常用方法是使用传统的关系型数据库,例如,ORACLE或微软公司的SQLSERVER。这种方法并不是将每一个对象序列化,而是将每个对象分解为若干组成部分,并分开存储。比如,对于银行账户对象,银行账号可以存储在关系型数据库的一行中,同时账户余额存储在另一行中。当你存储JAVA对象时,你会利用JDBC或SQL/J去映射对象数据到关系型数据库中。你也可以存储这些数据对应的JAVA类的名称,所以,当从数据库中读到对象时,你会知道哪一个类被实例化。当你想要从数据库中加载对象时,必须首先把类的对象实例化,从数据库中读取数据到对象实例中,然后,将读入的数据复制导对象实例相应的字段。如图71所示。这种将对象映射成关系型数据库的技术叫做对象关系型数据库映射。它执行的操作就是把内存中的对象转换成关系型数据,或者是其逆操作。对象关系型数据库映射器(O/RMAPPER)能够转换任何一种数据库结构。(例如,它可以把一个JAVA对象转换成一个单独的关系型记录。然后,它将重新获得这个记录并重建一个对象在内存中为你使用)。与简单的对象序列化相比,对象关系型数据库映射是一种复杂的持久对象机制。通过分解JAVA对象为关系型数据,你能对信息执行任意的查询。比如,你可以在所有的数据库记录中查找账户余额大于1000元的记录,然后,只加载满足条件的对象。然后,还可以执行更高级的查询。对象关系型数据映射可以通过两条途径来实现。你可以在编写代码时手工建立这种映射,或利用一种对象关系向数据库映射工具,比如OBJECTPEOPLE公司的TOPLINK或SUN公司的JAVABLEND,让这些工具自动完成简化映射。目前,大多数用户利用数据库存取API,比如JDBC或SQL/J,手工建立这种映射。由于开发和维护一个对象关系型数据库映射层所花费的代价是很庞大的,随着对象关系型数据库映射产品的成熟,它们被采用是很有希望的。对象数据库对象数据库管理系统是持久化存储器,保存着全部对象。在对象数据库中,对象是“头等公民”。这意味着没有对象关系型数据库映射层JAVA对象本身作为完整的对象存储。因此,你不需要针对关系型数据库API进行编程。这意味着你可以避开对象关系型数据库映射,从而简化数据存取代码。大多数对象数据库(和O/R映射工具)提供使用对象查询语言(OQL)。OQL是很好的高级接口,它允许你查询对象的任何特性。从关系型数据库中查询时,它同样也增加了一个提取层。除了基于OQL的查询之外,对象数据库还支持对象之间的关联。你可以定义银行账户对象和客户对象之间的关联,并且在它们之间能够进行透明操作。与在关系型数据库中进行等值操作所需要的基于SQL的连接相比较,这种透明的操作使得操作对象模型变得容易,并可以得到极好的性能。对象数据库也有可预期的性能和可扩展性。它们提供了非常强大的完整性和安全性,并为复杂的持久对象提供了极好的存储空间。有些应用能够很好地与对象数据库工作(例如,地理空间数据或CAD/CAM),而完全不适合于关系型数据库。另外一些应用却可以容易地映射到关系型数据库,比如大多数商务应用。对于简单而大量的商务事务,关系型数据库典型地优于对象数据库。OBJECTSTORE,VERSANT,和POET是当前少数几个提供对象数据库技术的供应商。不幸的是,对象数据库产品仍没有被行业充分地接受。尽管它对于某些应用是非常有用的,对象数据库的应用目前仍是有限的,因为它缺少非常丰富的相关工具,比如报表、转换和管理工具。现在我们已经激起了你对持久机制的兴趣,让我们看一看持久对象是怎样用在一个EJB多层环境中的。什么是实体BEAN在任何复杂的面象的多层配置中,我们可以在部署的两种不同组件之间划出一道清晰的界线应用逻辑组件。这些组件是执行公共任务的方法提供者。它们的任务可能包括计算一个订单的价格在顾客的信用卡上记账逆矩阵的计算注意这些表现的是操作(它们是动词)。它们很适合于处理商务过程。会话BEAN能够很好地模型化这些应用逻辑组件。它们常常包含用于执行应用任务的有趣的运算法则和逻辑。会话BEAN代表为一个用户而执行操作,它们代表包括任何工作流逻辑的用户会话。持久数据组件。作为对象(或许是用JAVA编写的),它们知道如何将自身放入持久存储的空间中。它们使用一些持久机制,比如序列化、O/R映射到一个关系型数据库,或一个对象数据库。这种对象代表数据不论是简单的还是复杂的,可能都是你想要保存的信息。例如下面这些银行账户信息,比如帐号和余额人力资源信息,比如姓名、部门和工资引导客户追踪信息,比如你想要一直追踪的潜在客户的姓名、住址和电话号码注意这些组件表象的是人、地点和事情(它们是名词)。它们很适合于处理商务数据。你可能会怀疑

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论