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

下载本文档

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

文档简介

外文原文CHAPTER7INTRODUCTIONTOENTITYBEANSINCHAPTERS36,YOULEARNEDHOWTOCODESESSIONBEANSDISTRIBUTEDCOMPONENTSTHATREPRESENTBUSINESSPROCESSESBUTSESSIONBEANSAREONLYHALFOFWHATENTERPRISEJAVABEANSHASTOOFFERONEOFTHEKEYBENEFITSOFEJBISTHEPOWERTOCREATEENTITYBEANSENTITYBEANSAREPERSISTENTOBJECTSTHATCANBESTOREDINPERMANENTSTORAGETHISMEANSYOUCANMODELYOURBUSINESSSFUNDAMENTAL,UNDERLYINGDATAASENTITYBEANSWELLSEEEXACTLYWHATTHISMEANSINTHEPAGESTOCOMEINTHISCHAPTER,WELLCOVERTHESETOPICS_THEBASICCONCEPTSOFPERSISTENCE_ADEFINITIONOFENTITYBEANS,FROMAPROGRAMMERSPERSPECTIVE_THEFEATURESTHATENTITYBEANSHAVETOOFFER_HOWENTITYBEANSCOMPAREWITHSESSIONBEANS_ENTITYBEANPROGRAMMINGCONCEPTSENTITYBEANSAREANOPTIONALPARTOFENTERPRISEJAVABEANS10EVENIFYOUREJBCONTAINERISCOMPLIANTWITHEJB10,THEEJBCONTAINERMAYNOTBEABLETOHANDLEENTITYBEANSIFYOUNEEDENTITYBEANS,MAKESUREYOUCHOOSEACONTAINERCAPABLEOFDEPLOYINGTHEMEJB11,WHICHISPARTOFJAVA2PLATFORM,ENTERPRISEEDITIONJ2EE,MANDATESENTITYBEANSUPPORTTHISCHAPTERISRELATIVELYTHEORETICAL,ANDITISMEANTTOGIVEYOUADEEPFOUNDATIONINENTITYBEANPROGRAMMINGCONCEPTSFORTHOSEOFYOUWITHATRADITIONALPROCEDURALPROGRAMMINGBACKGROUND,ENTITYBEANSCANBEAVERYTOUGHTOPICTOGRASPYOUMAYNEEDTOREREADTHISCHAPTERAFEWTIMESTOREALLYUNDERSTANDHOWTHINGSWORKMAKESUREYOUVEREADANDUNDERSTOODTHEPREVIOUSCHAPTERSINTHISBOOKOURDISCUSSIONOFENTITYBEANSWILLBUILDONTHEKNOWLEDGEYOUVEACQUIREDSOFARWELLUSETHESECONCEPTSWITHHANDSONCODEINCHAPTERS8AND9PERSISTENCECONCEPTSBECAUSEENTITYBEANSAREPERSISTENTOBJECTS,OURDISCUSSIONBEGINSWITHAQUICKLOOKATJAVAOBJECTSERIALIZATIONWHENYOUWORKWITHJAVAOBJECTS,INMANYCASESYOUWOULDLIKETOCAPTURETHESTATEOFTHEOBJECTYOURECURRENTLYWORKINGWITHANDSAVEITTOAPERMANENTSTORAGEONEWAYTODOTHIS,ASCOVEREDINAPPENDIXA,ISTOUSEOBJECTSERIALIZATIONOBJECTSERIALIZATIONISANEASYWAYTOMARSHALANOBJECTGRAPHINTOACOMPACTREPRESENTATIONWHENYOUSERIALIZEANOBJECTGRAPH,YOUCONVERTTHEGRAPHINTOABYTESTREAMYOUCANTHENDOANYTHINGYOUWANTTOWITHTHATSTREAM,SUCHASPUSHTHEDATAOVERTHENETWORKWHICHISHOWJAVARMIPASSESPARAMETERSOVERTHENETWORK,ORYOUCANSAVETHESTREAMTOASTORAGE,SUCHASAFILESYSTEM,DATABASEORJNDITREEFORSOPHISTICATEDPERSISTENCE,HOWEVER,OBJECTSERIALIZATIONFALLSSHORTINMANYAREASFOREXAMPLE,LETSSAYWESTOREAMILLIONSERIALIZABLEBANKACCOUNTOBJECTSONTOAFILESYSTEMWEDOTHISBYCONVERTINGTHEOBJECTSTOTHEIRBITBLOBREPRESENTATIONANDTHENSTORINGTHEBYTESONDISKLETSSAYWETHENWANTTORETRIEVEALLBANKACCOUNTSTHATHAVEBALANCESOVER1000TODOTHISWITHSERIALIZATION,WEDHAVETOLOADEACHANDEVERYBANKACCOUNTSERIALIZEDBITBLOBFROMTHEDISK,CONSTRUCTTHECORRESPONDINGOBJECT,ANDTHENEXECUTEAMETHODQUERYONTHEOBJECTTODETERMINEIFTHEBALANCEISOVER1000WEMIGHTWANTTOPERFORMMOREADVANCEDQUERIESASWELL,SUCHASRETRIEVINGALLCHECKINGACCOUNTSTHATHAVEBEENINACTIVEFORSIXMONTHSTHEREISNOEFFICIENTWAYTODOTHISWITHOBJECTSERIALIZATIONINGENERAL,QUERYINGOBJECTSSTOREDUSINGOBJECTSERIALIZATIONISVERYEXPENSIVEANDCUMBERSOMESUBMITTINGQUERIESAGAINSTBUSINESSDATAISANABSOLUTENECESSITYFORLARGESCALEAPPLICATIONS,WHICHMAKESSIMPLEOBJECTSERIALIZATIONUNSUITABLEFORPERSISTENTSTORAGEWHILEOBJECTSERIALIZATIONHASITSPURPOSE,ITISBESTUSEDINRESTRICTEDDOMAINS,SUCHASFORNETWORKCOMMUNICATIONSANDSIMPLEPERSISTENCEFOREJB,WELLNEEDAMOREROBUSTPERSISTENCEMECHANISMTOADDRESSMORECOMPLEXQUERYINGOPERATIONSOBJECTRELATIONALMAPPINGANOTHERPOPULARWAYTOSTOREJAVAOBJECTSISTOUSEATRADITIONALRELATIONALDATABASE,SUCHASORACLEORMICROSOFTSQLSERVERRATHERTHANSERIALIZEEACHOBJECT,WECOULDDECOMPOSEEACHOBJECTINTOITSCONSTITUENTPARTSANDSTOREEACHPARTSEPARATELYFOREXAMPLE,FORABANKACCOUNTOBJECT,THEBANKACCOUNTNUMBERCOULDBESTOREDINONERELATIONALDATABASEROW,WHILETHEBANKACCOUNTBALANCECOULDBESTOREDINANOTHERROWWHENYOUSAVEYOURJAVAOBJECTS,YOUWOULDUSEJDBCORSQL/JTOMAPTHEOBJECTDATAINTOARELATIONALDATABASEYOUCOULDALSOSTORETHENAMEOFTHEJAVACLASSTHATTHISDATACORRESPONDSTO,SOTHATYOUKNOWWHICHCLASSTOINSTANTIATEWHENREADINGTHEOBJECTBACKFROMTHEDATABASEWHENYOUWANTTOLOADYOUROBJECTSFROMTHEDATABASE,YOUDFIRSTINSTANTIATEANOBJECTFROMTHATCLASS,READTHEDATAINFROMTHEDATABASE,ANDTHENPOPULATETHATOBJECTINSTANCESFIELDSWITHTHERELATIONALDATAREADINTHISISSHOWNINFIGURE71THISMAPPINGOFOBJECTSTORELATIONALDATABASESISATECHNOLOGYCALLEDOBJECTRELATIONALMAPPINGITISTHEACTOFCONVERTINGANDUNCONVERTINGINMEMORYOBJECTSTORELATIONALDATAANOBJECTRELATIONALO/RMAPPERCOULDUSEANYKINDOFUNDERLYINGDATABASESCHEMAFOREXAMPLE,ITCOULDTRANSLATEAJAVAOBJECTINTOASINGLERELATIONALRECORDITCOULDTHENRETRIEVETHATRECORDATALATERTIMETORECONSTRUCTANOBJECTINMEMORYFORYOUTOUSEOBJECTRELATIONALMAPPINGASAPERSISTENCEMECHANISMISAMUCHMORESOPHISTICATEDMECHANISMOFPERSISTINGOBJECTSTHANSIMPLEOBJECTSERIALIZATIONBYDECOMPOSINGYOURJAVAOBJECTSASRELATIONALDATA,YOUCANISSUEARBITRARYQUERIESFORINFORMATIONFOREXAMPLE,YOUCANSEARCHTHROUGHALLTHEDATABASERECORDSTHATHAVEANACCOUNTBALANCEENTRYGREATERTHAN1000ANDLOADONLYTHEOBJECTSTHATFULFILLTHISQUERYMOREADVANCEDQUERIESAREALSOPOSSIBLEMAPPINGOFOBJECTSTORELATIONALDATACANBEDONEINTWOWAYSYOUCANEITHERHANDCRAFTTHISMAPPINGINYOURCODEORUSEANOBJECTRELATIONALMAPPINGPRODUCTSUCHASOBJECTPEOPLESTOPLINKORSUNSJAVABLENDTOAUTOMATEORFACILITATETHISMAPPINGTODAY,MOSTUSERSHANDCRAFTTHEMAPPINGUSINGADATABASEACCESSAPISUCHASJDBCORSQL/JBECAUSETHECOSTOFDEVELOPINGANDMAINTAININGANOBJECTRELATIONALMAPPINGLAYERISSIGNIFICANT,ITISLIKELYTHATTHEOBJECTRELATIONALMAPPINGPRODUCTSWILLBEADOPTEDASTHEYMATUREOBJECTDATABASESANOBJECTDATABASEMANAGEMENTSYSTEMODBMSISAPERSISTENTSTORETHATHOLDSENTIREOBJECTSINANOBJECTDATABASE,YOUROBJECTSAREFIRSTCLASSCITIZENSINTHEDATABASETHISMEANSTHEREISNOO/RMAPPINGLAYERYOURJAVAOBJECTSTHEMSELVESARESTOREDASWHOLEOBJECTSBECAUSEOFTHIS,YOUDONTNEEDTOPROGRAMTOARELATIONALDATABASEAPIRATHER,YOUPROGRAMTOTHEOBJECTDATABASESAPITHISMEANSYOUCANSIDESTEPOBJECT/RELATIONALMAPPING,RESULTINGINSIMPLIFIEDDATAACCESSCODEMOSTOBJECTDATABASESANDO/RMAPPINGPRODUCTSPROVIDEFACILITIESTOQUERYPERSISTEDOBJECTSBYUSINGANOBJECTQUERYLANGUAGEOQLOQLISANICEHIGHLEVELINTERFACETHATALLOWSYOUTOQUERYOBJECTPROPERTIESFORARBITRARYCHARACTERISTICSITALSOADDSALAYEROFABSTRACTIONFROMRELATIONALDATABASEQUERIESINADDITIONTOOQLBASEDQUERIES,OBJECTDATABASESSUPPORTRELATIONSHIPSBETWEENOBJECTSYOUCOULDDEFINEARELATIONSHIPBETWEENABANKACCOUNTOBJECTANDACUSTOMEROBJECTANDTRANSPARENTLYNAVIGATEBETWEENTHEMTHETRANSPARENTNAVIGATIONMAKESITEASYTONAVIGATETHEOBJECTMODELANDHASEXCELLENTPERFORMANCEWHENCOMPAREDTOSQLBASEDJOINSTHATARENEEDEDTOPERFORMEQUIVALENTOPERATIONSINRELATIONALDATABASESOBJECTDATABASESALSOHAVEVERYPREDICTABLEPERFORMANCEANDSCALABILITYTHEYOFFERVERYSTRONGINTEGRITYANDSECURITY,ANDTHEYPROVIDEANEXCELLENTSTOREFORCOMPLEXPERSISTENTOBJECTSTHEREARECERTAINAPPLICATIONSTHATGOREALLYWELLWITHOBJECTDATABASESGEOSPATIALORCAD/CAM,FOREXAMPLETHATARECOMPLETEMISFITSFORRELATIONALDATABASESTHEREAREOTHERAPPLICATIONSTHATMAPEASILYTORELATIONALDATABASES,SUCHASMOSTBUSINESSAPPLICATIONSFORSIMPLEHIGHVOLUMEBUSINESSTRANSACTIONS,RELATIONALDATABASESTYPICALLYSCALEBETTERTHANOBJECTDATABASESOBJECTSTORE,VERSANT,ANDPOETAREAFEWOFTHECURRENTVENDORSWHOPROVIDEOBJECTDATABASETECHNOLOGYUNFORTUNATELY,OBJECTDATABASEPRODUCTSHAVENOTYETBEENFULLYEMBRACEDBYTHEINDUSTRYALTHOUGHTHEYAREVERYUSEFULFORCERTAINAPPLICATIONS,OBJECTDATABASESARECURRENTLYLIMITEDBECAUSETHEYDONTHAVEVERYMANYASSOCIATEDTOOLS,SUCHASREPORTING,TUNING,ANDMANAGEMENTTOOLSNOWTHATWEVEWHETTEDYOURAPPETITEWITHPERSISTENCEMECHANISMS,LETSTAKEALOOKATHOWENTITYBEANPERSISTENTOBJECTSAREUSEDINANEJBMULTITIERENVIRONMENTWHATISANENTITYBEANINANYSOPHISTICATED,OBJECTORIENTEDMULTITIERDEPLOYMENT,WECANDRAWACLEARDISTINCTIONBETWEENTWODIFFERENTKINDSOFCOMPONENTSDEPLOYEDAPPLICATIONLOGICCOMPONENTSTHESECOMPONENTSAREMETHODPROVIDERSTHATPERFORMCOMMONTASKSTHEIRTASKSMIGHTINCLUDETHEFOLLOWING_COMPUTINGTHEPRICEOFANORDER_BILLINGACUSTOMERSCREDITCARD_COMPUTINGTHEINVERSEOFAMATRIXNOTICETHATTHESECOMPONENTSREPRESENTACTIONSTHEYREVERBSTHEYAREWELLSUITEDTOHANDLEBUSINESSPROCESSESSESSIONBEANSMODELTHESEAPPLICATIONLOGICCOMPONENTSVERYWELLTHEYOFTENWILLCONTAININTERESTINGALGORITHMSANDLOGICTOPERFORMAPPLICATIONTASKSSESSIONBEANSREPRESENTWORKBEINGPERFORMEDFORAUSERTHEYREPRESENTTHEUSERSESSION,WHICHINCLUDESANYWORKFLOWLOGICPERSISTENTDATACOMPONENTSTHESEAREOBJECTSPERHAPSWRITTENINJAVATHATKNOWHOWTORENDERTHEMSELVESINTOPERSISTENTSTORAGETHEYUSESOMEPERSISTENCEMECHANISM,SUCHASSERIALIZATION,O/RMAPPINGTOARELATIONALDATABASE,ORANOBJECTDATABASETHESEKINDSOFOBJECTSREPRESENTDATASIMPLEORCOMPLEXINFORMATIONTHATYOUDLIKESAVEDEXAMPLESHEREINCLUDETHEFOLLOWING_BANKACCOUNTINFORMATION,SUCHASACCOUNTNUMBERANDBALANCE_HUMANRESOURCESDATA,SUCHASNAMES,DEPARTMENTS,ANDSALARIESOFEMPLOYEES_LEADTRACKINGINFORMATION,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,WEINTRODUCETWONEWTERMS_THEENTITYBEANINSTANCEISTHEINMEMORYVIEWINTOTHEDATABASEITISANINSTANCEOFYOURENTITYBEANCLASS_THEENTITYBEANDATAORDATAINSTANCEISTHEPHYSICALSETOFDATA,SUCHASABANKACCOUNTRECORD,STOREDINTHEDATABASEINSUMMARY,YOUSHOULDTHINKOFANENTITYBEANINSTANCEASTHEFOLLOWING_ANINMEMORYJAVAREPRESENTATIONOFPERSISTENTDATA_SMARTENOUGHTOKNOWHOWTOREADITSELFFROMASTORAGEANDPOPULATEITSFIELDSWITHTHESTOREDDATA_ANOBJECTTHATCANTHENBEMODIFIEDINMEMORYTOCHANGETHEVALUESOFDATA_PERSISTABLE,SOTHATITCANBESAVEDBACKINTOSTORAGEAGAIN,THUSUPDATINGTHEDATABASEDATAFILESINCLUDEDWITHENTITYBEANSLETSTAKEALOOKATTHEFILESTHATMAKEUPANENTITYBEANCOMPONENTTHEENTITYBEANCLASSISAJAVACLASSTHATMODELSPERSISTENTDATAANENTITYBEANCLASSMAPSTOANENTITYDEFINITIONINADATABASESCHEMAFOREXAMPLE,ANENTITYBEANCLASSCOULDMAPTOARELATIONALTABLEDEFINITIONINTHISCASE,ANENTITYBEANINSTANCEOFTHATCLASSWOULDMAPTOAROWINTHATTABLEYOURENTITYBEANCLASSCANEXPOSESIMPLEMETHODSTOMANIPULATEORACCESSTHATDATA,SUCHASAMETHODTODECREASEABANKACCOUNTBALANCELIKEASESSIONBEANCLASS,EJBALSOREQUIRESTHATANENTITYBEANCLASSMUSTFILLINSOMESTANDARDCALLBACKMETHODSTHEEJBCONTAINERWILLCALLTHESEMETHODSAPPROPRIATELYTOMANAGETHEENTITYBEANTHEENTITYBEANSREMOTEINTERFACEISTHEINTERFACETOYOURBEANSONWHICHCLIENTSINVOKEINIT,YOUSHOULDPLACEEACHOFYOURENTITYBEANSBUSINESSMETHODSIGNATURESYOUREJBCONTAINERVENDORPROVIDESTOOLSTOIMPLEMENTTHISREMOTEINTERFACETHEIMPLEMENTATIONISTHEENTITYBEANSEJBOBJECTTHEEJBOBJECTREPRESENTSALAYEROFINDIRECTIONBETWEENTHECLIENTANDTHEBEANCLIENTSINVOKEDIRECTLYONTHEEJBOBJECT,RATHERTHANONTHEENTITYBEANITSELFBECAUSETHEEJBOBJECTISPARTOFTHECONTAINER,ITCONTAINSLOGICTOINTERCEPTMETHODCALLSANDPERFORMMANAGEMENTTASKSONTHEBEANINSTANCEASNEEDEDTHISISEXACTLYTHESAMECONCEPTTHATWELEARNEDFORSESSIONBEANSTHEENTITYBEANSHOMEINTERFACEISTHEINTERFACECLIENTSUSETOCREATE,FIND,ANDDESTROYENTITYBEANEJBOBJECTSINIT,YOUSHOULDPUTTHEDIFFERENTPOSSIBLEMETHODSYOUDLIKEAVAILABLETOCREATENEWENTITYBEANEJBOBJECTS,ANDTOFINDORDESTROYOLDONESYOUREJBCONTAINERVENDORPROVIDESTOOLSTOIMPLEMENTTHISHOMEINTERFACETHEIMPLEMENTATIONISTHEENTITYBEANSHOMEOBJECTTHISHOMEOBJECTISTHEFACTORYFORYOUREJBOBJECTSTOFINDTHEHOMEOBJECT,YOURCLIENTSMUSTPERFORMAJNDILOOKUPTHISISEXACTLYTHESAMECONCEPTTHATWELEARNEDFORSESSIONBEANS中文翻译第七章对实体BEAN的介绍在第36章,你学习了对分布式会话BEAN的业务进程描述。但是会话BEAN只是EJB提供的东西的一半。EJB的关键优势是创造实体BEAN的能力。实体BEAN是可以永久保存的持久稳定的对象。这意味着你可以建模出以实体BEAN为潜在数据的商业原理。我们来看一下接下来的内容中这究竟意味着什么。在这章中,我们会复习以下主题持续的基本概念来自程序员观点的实体BEAN的定义实体BEAN提供的特征实体BEAN与会话BEAN是如何比较的实体BEAN编程概念实体BEAN是EJB1。0里面可以选择的一个部分。即使你的EJB容器与EJB1。0相适应,你的EJB容器也有可能不支持实体BEAN。如果你需要实体BEAN,确保你选择了一个可以配置他们的容器。作为J2EE一部分的EJB1。1负责了实体BEAN的支持。这章与理论相关,这是为了给你一个在实体BEAN编程方面的深入的基础。由于传统编程背景,实体BEAN成为一个难以把握的主题。为了真正弄懂事情如何进行,你可能需要重读这章几遍。请确定你已经阅读并理解了本书的前几章我们关于实体BEAN的讨论将建立在到目前为止你已经获得的知识的基础上。我们将在第八章和第九章中运用到这些编程概念。1持久性概念因为实体BEAN是持久的对象,我们的讨论以快速观察持续对象的流行方法作为开始。11JAVA对象连续性当你处理JAVA对象时,在通常情况下你会捕捉你正在处理的对象并永久存储它。像附录A概括的那样一个这样做的方法是利用对象连续性。对象连续性,是一种将对象图整理成紧凑的代表性的简单方法。当你连接一个对象图的时候,你将图转换为字节流。你可以对这个流对任何事情,例如把数据推向网络JAVARMI通过网络的参数。或者你可以把这个流保存起来,例如文件系统,数据库或者JNDI树。然而,在很多领域对象序列还有不足。例如,我们不妨说,我们将一百万个连续的银行账户存储进一个文件系统。我们通过将对象转化为它们的BITBLOB表示法并把那些字节存储进磁盘的方式来实现这种做法。然后我们想取回所有平均超过一千美元的银行账户。想通过持久性实现这些,我们不得不从磁盘读取每个以BITBLOB连续的银行账户,创造相应的对象,然后执行一个方法查询对象以确定是否平均超过1000美元。我们可能要执行更先进的查询,例如检索已闲置6个月的所有支票帐户。没有有效的方法通过对象连续性来实现这个目的。一般来说,查询对象存储使用对象连续性是非常昂贵和繁琐的。对商业数据提交查询是绝对有必要的,它使得简单的对象连续性不适合长期存储。对象连续性最好使用在某些受限制的领域才能发挥作用,例如网络通信和简单持续性。因为EJB,我们将需要一个更强大的持续性机制来解决更复杂的查询业务。12对象关系映射另一种流行的存储JAVA对象的方法,是使用传统的关系型数据库,如ORACLE或微软SQLSERVER。与把每个对象连接起来相比,我们可以把每个对象分解成它的组成部分然后把每个部分单独存储。例如,对于一个银行账户,把银行账户帐号存储在一个关系数据库的行中,然后把银行账户收支差额存储在另一个行中。当你保存JAVA对象的时候,你会使用JDBC或者SQL/J来把对象数据导入关系数据库中。你也可以存储与数据相适应的JAVA类的名称,这样你就知道哪一个类初始化的时候是从数据库中读取的对象。当你想从数据库中读取对象的时候,你最好最先从那个类中选一个实例,从数据库中读取数据,然后再填充该对象举例的领域与关系数据。这将在图7。1中展示。这个关于关系数据库的映射图是使用一种名为OBJECTRELATIONALMAPPING的技术测绘。这是在内存中对关系数据装包和拆包的行为。一个对象关系(O/R)的映射,可以使用任何一种底层数据库模式(例如,它可以把一个JAVA对象转化为一个单一的关系记录,它便可以取出这个纪录在稍后的时间来重建一个对象在内存供您使用)。对象关系映射作为一个持续性的机制,是一个比简单的对象连续性更为复杂的连续机制。通过分解作为关系数据的你的JAVA对象,你可以为信息提出任何查询。例如,你可以搜索所有数据库记录,找出是否有账户余额大于以前美元的账户然后只提出这个对象来完成查询。更多进一步的查询也是可行的。完成对象到关系数据的映射有两种方式。你既可以手动编程完成映射,也可以使用对象关系映射产品,例如OBJECTPEOPLE公司的TOPLINK或者SUN公司的JAVABLEND自动完成或促进完成这一映射。现在,大多数用户使用数据库存取API来完成手动映射,例如JDBC或者SQL/J。由于开发及维持对象关系映射层的成本很大,因此对象关系映射会因为它们的成熟而被人们采用。13对象数据库数据库管理系统是对于整个对象的持久性存储。在一个对象数据库中,你的对象是数据库的一等公民。这意味着没有O/R映射层你的JAVA对象本身作为整个对象保存。因此,你不需要编写关系数据库API的程序然而,你编写对象数据库的程序。这意味着你能避开对象/关系映射,从而简化了数据访问代码。大多数对象数据库(和对象/关系映射产品)通过使用对象查询语言OQL提供查询连续对象的工具。OQL是一个允许你通过任意特征查询对象属性的不错的高层次接口。它还添加了一个用来提取关系数据库查询的层。除了以OQL为基础的查询外,对象数据库还提供对象之间的关联。你可以定义一个银行账户对象和一个顾客对象之间的关联并且透明地在它们之间浏览。透明导航能够轻易实现对象模型的操作并且在与基于SQL的在关系数据库中完成相同工作的加入的比较中有出色表现。对象数据库,也有非常明确的性能和可扩展性。它们提供强大的完整性和安全性并未复杂的持久对象提供优良的存储。有一些应用在对象数据库中运行良好例如GEOSPATIAL或者CAD/CAM,这与关系数据库完全不适合。其他一些应用软件可以轻易映射关系数据库,例如大多数商业应用软件。对于简单的大容量的商业事务,关系数据库通常规模胜于对象数据库。OBJECTSTORE,VERSANT,和POET是一些提供对象数据库技术的供应商。不幸的是,对象数据库产品尚未完全受到业界欢迎。虽然它们在某些应用方面很有用,对象数据库由于缺少很多相关的工具而普遍受到限制,例如报告工具,调节工具和管理工具。现在我们通过持续机制使你的欲望兴奋起来,让我们来看看实体BEAN连续对象如何被使用在EJB多层环境中被使用的。2什么是实体BEAN在任何复杂的,面向对象的多层部署中,我们可以得出一个明确区分两类不同性质的成分调配应用逻辑元件。这些组件是完成一般任务的方法提供者。它们的任务包括以下内容计算一个命令的价值计算用户的信用卡计算逆矩阵注意这些组件所代表的行为它们是动词。这些信息非常适合用于处理业务流程。会话BEAN可以很好地建模这些应用逻辑组件。它们通常包含有趣的算法和逻辑来完成应用任务。会话BEAN为了一个用户来完成代表的工作。它们代表了包括任何工作流程的逻辑的用户会话。数据持久组件。这些都是知道如何使自身永久保存的对象可能用JAVA编写。它们使用一些持续机制,例如连续性,对于关系数据库的O/R映射,或者一个数据库。这些种类的对象表示了你想保存的简单的或者复杂的信息。这里的示例包括以下这些银行账户信息,例如账号和余额人力资源信息,例如姓名,部门和雇员的薪水领导跟踪信息,例如姓名,地址和你想随时知道的预期的顾客的电话号码。注意这些组件代表的人,地点,事务它们是名词。这些信息非常适合用于处理业务数据。你可能怀疑这些持久数据组件的必要性。为什么我们要以对象的方式处理商业数据,而不像处理原始数据

温馨提示

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

评论

0/150

提交评论