freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計(jì)算機(jī)專業(yè)外文資料翻譯--對象持久化和java-深入的了解面向?qū)ο笳Z言中的對象持久的討論-資料下載頁

2025-05-11 17:48本頁面

【導(dǎo)讀】vendors.setOfGoodCustomers=(());

  

【正文】 上是否能成功仍有待觀察。 但是問題依然存在:對象持久化是對象特征的一部分或者是外部服務(wù)通過提供分離的接口給對象?通過什么樣的對象集合和方法查詢它們?在對象數(shù)據(jù)庫和 java 語言本身視持久化為語言的內(nèi)在時,關(guān)系,擴(kuò)展關(guān)系,對象 /關(guān)系往往在語言之間主張分裂的做法。 串行化實(shí)現(xiàn) java 持久化 對象串行化是 java 語言中對象和元素的流的存儲和讀取的特殊策略 。值得提醒的是,雖然有商用的第三方庫對串行化 C++對象的支持,但是 C++本身并沒有提供對象串行化的策略。下面是如何使用 java 的串行化: // Writing foo to a stream (for example, a file) // Step 1. Create an output stream // that is, create bucket to receive the bytes FileOutputStream out = new FileOutputStream(fooFile)。 // Step 2. Create ObjectOutputStream // that is, create a hose and put its head in the bucket ObjectOutputStream os = new ObjectOutputStream(out) // Step 3. Write a string and an object to the stream 3 // that is, let the stream flow into the bucket (foo)。 (new Foo())。 // Step 4. Flush the data to its destination ()。 writeObject 方法串行化了 foo 對象和它的傳遞閉包 ―― 指的就是圖中所有引用 foo的對象。流內(nèi)部只有串行化對象的一個副本存在。其它引用對象以對象句柄的形式存在來保存空格和防止循環(huán)引用。串行化對象以繼承結(jié)構(gòu)的每個類的屬性開始,如下類的實(shí)現(xiàn): // Reading an object from a stream // Step 1. Create an input stream FileInputStream in = new FileInputStream(fooFile)。 // Step 2. Create an object input stream ObjectInputStream ins = new ObjectInputStream(in)。 // Step 3. Got to know what you are reading String fooString = (String)()。 Foo foo = (Foo)()。 對象串行化和安全 默認(rèn)情況下,串行化寫入流中和從流中讀取的都是非靜態(tài)和非臨時的屬性。這種特性能夠被用作一個安全策略, 通過定義無需串行化的屬性為私有臨時類型的變量。如果一個類不被串行化,那么 writeObject 和 readObject 方法將拋出 NoAccessException 異常。 使用事務(wù)完整性的持久化:介紹 JDBC 與 X/Open 的 SQL CLI(客戶端接口 )和微軟抽象的 ODBC 類型, JDBC 的目的也是提供一個與數(shù)據(jù)庫管理系統(tǒng)( DBMS)無關(guān)的數(shù)據(jù)庫連接策略。要成為適用的 JDBC,驅(qū)動至少要支持 ANSI SQL- 2 entry- level API,它是提供第三方工具和靈活數(shù)據(jù)庫訪問應(yīng)用的廠商。 JDBC 被設(shè)計(jì)為能與 java 系統(tǒng)相互兼容。開發(fā)者們要求廠商們提供比 ODBC 更加完善的 API,能夠在編譯時提供靜態(tài)類型的檢查。下面是關(guān)于幾個主要 JDBC 接口的描述: ? 手動加載驅(qū)動和為新的數(shù)據(jù)庫連接提供支持 ? 表示一個特殊數(shù)據(jù)庫的連接 ? 在執(zhí)行給定連接的 SQL 語句時擔(dān)當(dāng)容器 ? 控制訪問的結(jié)果集 你可以多種方式來實(shí)現(xiàn) JDBC 驅(qū)動。最簡單的是構(gòu)建 ODBC 橋,這種方法最適合工具和應(yīng)用 不需要很高的性能。一個更容易擴(kuò)展的設(shè)計(jì)是引進(jìn)一個中間層來連接 DBMS服務(wù)器,該層提供一個 JDBC 網(wǎng)絡(luò)驅(qū)動器,它通過公共的協(xié)議來訪問 DBMS 服務(wù)器。但4 是最有效率的驅(qū)動器就是直接使用 DBMS 本身的 API。 對象數(shù)據(jù)庫和 java 持久化 在行業(yè)中許多正在進(jìn)行的項(xiàng)目都在對象層面提供了 java 持久化。對象設(shè)計(jì)的 PSE(持久性存儲引擎)和 PSE Pro 是唯一完全基于 java 的,可用的面向?qū)ο髷?shù)據(jù)庫軟件包(至少,這是我所知道的)。關(guān)于 PSE 和專業(yè) PSE 的更多信息請參看文獻(xiàn)部分。 對軟件廠家來說, java 開發(fā)引領(lǐng)顛覆了傳統(tǒng)的 開發(fā)形式,在開發(fā)過程中是顯而易見的。例如, PSE 和 PSE Pro 是在不同的環(huán)境下開發(fā)的。因?yàn)樵陂_發(fā)過程中這個不是在連接這步上,開發(fā)者們不得不創(chuàng)建相互獨(dú)立的多個功能模塊,這樣就形成了更好,更可靠的面向?qū)ο缶幋a。 PSE Pro 能夠恢復(fù)由于系統(tǒng)故障導(dǎo)致失敗的事務(wù)引起的數(shù)據(jù)庫的破壞。負(fù)責(zé)額外功能的類沒有在發(fā)布的 PSE 版本中體現(xiàn)出來。除了這個區(qū)別,兩個產(chǎn)品就沒有其它的區(qū)別了。這些產(chǎn)品是我們所稱的 dribbleware ―― 通過插入新的組件來增強(qiáng)軟件發(fā)布版本的功能。不遠(yuǎn)的將來,購買大型的單個軟件的概念將成為過去 的事。這種在網(wǎng)絡(luò)空間中的新的商業(yè)環(huán)境,加上 java 的處理技術(shù),使用戶只需要購買他們需要的對象模型,這樣就導(dǎo)致更緊湊的最終產(chǎn)品。 PSE 的工作是通過后處理技術(shù)和在開發(fā)人員創(chuàng)建的類文件中添加注解。從 PSE 的視圖可以看出,在對象圖中的類不是有可能持久化的就是已知要持久化的。有可能持久化的類只能持久它們本身,而已知要持久化的類能夠操作他們的持久化對象。這樣的不同是必須的,因?yàn)閷δ承╊悂碚f持久化不是必須的操作。類文件的后處理技術(shù)添加了以下的修改到類中: ? 使類從 或者 繼承 定義 initializeContents() 方法來加載實(shí)參到你的 Persistent 子類的空實(shí)例中,GenericObject 類中提供的 ObjectsStore 方法,用來獲取每個屬性的類型。為了能調(diào)用正確的方法,應(yīng)該需要一個獨(dú)立的方法。 ObjectStore 需要調(diào)用 initializeContents()方法。方法如下: ? Public void initilazeContects(GenericObject genObj)。 ? 定義一個 flushContects()方法,用來將修改 的實(shí)例(當(dāng)前的持久化對象)拷貝回?cái)?shù)據(jù)庫中。 ObjectStore 在 GenericObject 中提供方法,確保你的持久化對象屬性能調(diào)用正確的方法。這樣就需要一個獨(dú)立的方法來設(shè)置 Field 對象的類型, ObjectStore 需要調(diào)用 flushContents()方法。方法如下: ? Public void flushContents(GenericObject genObj)。 ? 定義一個 clearContents()方法,用來重新設(shè)置實(shí)例的值為默認(rèn)值。該方法必須將所有引用持久化對象的引用屬性設(shè)置為 null。 ObjectStore 需要調(diào)用該方法。方法如下: ? Public void clearContents()。 ? 修改引用非靜態(tài)屬性的方法來調(diào)用 ()和 ()方法。這些方5 法必須在持久化對象的內(nèi)容能夠分別的被訪問和修改之前被調(diào)用。這個步驟是非強(qiáng)制性的,它能提供一個系統(tǒng)的方式來確保 fetch()或者 dirty()在對象內(nèi)容被訪問或者修改之前被調(diào)用。 ? 定義一個類來提供可持久化類的概要信息 以上所有的步驟都可以手工或者自動完成。 PSE 的事務(wù)語意 以前的 ObjectStore 使用者或許會發(fā)現(xiàn),數(shù)據(jù)庫和事務(wù)總是關(guān)聯(lián)在一起。有一個廣泛的系統(tǒng) ObjectStore 對象來初始化環(huán)境和參數(shù)。數(shù)據(jù)庫類提供 create, open, close 方法,事務(wù)類有開始事務(wù) (begin),停止事務(wù) (abort),結(jié)束事務(wù) (mit)等方法。以序列化來看,你應(yīng)該找到一個入口點(diǎn)。 Database 類的 getRoot 和 setRoot 方法具有這個功能,我想看例子才是最有幫助的。第一段代碼顯展現(xiàn)了如何初始化 ObjectStore: (serverName, null)。 try { db = (dbName, )。 } catch(DatabaseNotFoundException exception) { db = (dbName, 0664)。 } 下面的代碼片段展視了如何開始和提交事務(wù): Transaction transaction = ()。 try { foo = (Foo)(fooHead)。 } catch(DatabaseRootNotFoundException exception) { (fooHead, new Foo())。 } ()。 上面提到的三個類, Transaction, Database 和 ObjectStore 是 ObjectStore 主要的類。 不支持傳播事務(wù),備份和恢復(fù),群集,大型數(shù)據(jù)庫,對象安全等在語言中有用的和任何分配方式。激動人心的是隨著基礎(chǔ)產(chǎn)品的日趨成熟,所有的這些功能也都在逐步的增加。 作者簡介 Arsalan Saljoughy 是一名系統(tǒng)工程師,是 Sun 公司在對象技術(shù)方面的專家。他獲得紐約州立大學(xué)的數(shù)學(xué) .,后來在柏林的一所大學(xué)擔(dān)任研究源。在加入 Sun 之前,他是一名開發(fā)人員和一所財(cái)經(jīng)服務(wù)公司的 IT 顧問。 結(jié)束語 6 雖然現(xiàn)在來確定對象持久化的方法特別是 java 持久化是否將來會成為主流還為之尚早,但是可以確定的是多種多樣的方法會同時存在。雖然已對象的方式來存儲對象,而不是把對象映射到行和屬性列的方式要慢很多,但是這種方式有可能會發(fā)生。同時我們更希望看到對象數(shù)據(jù)庫將在工程技術(shù)和遠(yuǎn)程通信技術(shù)應(yīng)用的優(yōu)勢,而不是銀行業(yè)務(wù)和辦公財(cái)政業(yè)務(wù)的應(yīng)用。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1