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

正文內(nèi)容

多級查詢在資產(chǎn)管理系統(tǒng)中的設計與實現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-24 13:51 本頁面
 

【文章內(nèi)容簡介】 onProvider接口)事務管理(TransactionFactory,Transaction和TransactionManagerLookup接口) ORM策略(ClassPersister接口)屬性訪問策略(PropertyAccessor接口)代理對象的創(chuàng)建(ProxyFactory接口) 映射機制 J2EE框架下的應用程序都是基于域模型的,在這種模型下,應用程序?qū)崿F(xiàn)復雜的業(yè)務邏輯和復雜的實體交互。ORM映射機制最適合使用在基于復雜的域模型應用中,域模型越復雜,使用Hibernate所帶來的好處越明顯。在域 模 型 的執(zhí)行中,Hibernate采用透明持久對對象/關系進行持久化。透明表示在域模型的持久類和持久邏輯本身之間完全的關系分離,在持久邏輯中,持久類完全不知道也不依賴于持久機制。 普通Java對象POJOHibernate的ORM從編程模型上看就是把一個普通Java對象POJO(Plain Ordinary Java Object)映射為關系數(shù)據(jù)庫中的表。映射是用一個XML文檔(XML document)來定義的。這個映射文檔被設計為易讀的,并且可以手工修改。映射語言是以Java為中心的,意味著映射是按照持久化類的定義來創(chuàng)建的,而非表的定義。 一個POJO很像一個JavaBean,沒有EntityBean那樣冗長的接口。Hibernate正是在使用POJO的域模型中工作的。一個 POJO聲明了屬性(代表對象的狀態(tài))、業(yè)務方法(代表對象的行為)和對屬性的訪問方法。以一個Course對象為例,簡單說明如下:public class Course implements Seiralizable (public String courseName。public int id 。public String getCourseName()(return 。)public void setCourseName(String name)(courseName = name。)public int getId()(return 。)}Hibernate不要求持久對象實現(xiàn)Seiralizable(序列化)接口,但是當對象存儲在HttpSession中或者用RMI進行值傳遞時,序列化是必須的。屬性通常作為實例變量與屬性訪問方法一起執(zhí)行。訪問方法是用來檢索實例變量的值和改變其值的方法,分別稱為geter和seter方法。Hibernate不要求訪問方法聲明為公有的,它可以很容易的使用私有訪問方法來管理屬性。 繼承映射最簡單的類到數(shù)據(jù)庫表的映射策略是“一個類一張表”。這個方法確實聽起來很簡單,但是在遇到繼承問題的時候就不能有效的起作用了。繼承是面向?qū)ο蠼Y(jié)構(gòu)中最明顯的特征。繼承關系有三種不同的映射方法:1) 每個具體的類映射為一個表。這跟前面講的最簡單的映射方法是一樣的,一個類的所有屬性,包括從超類繼承過來的屬性,都一一映射為數(shù)據(jù)庫表的列。即超類superclass映射為一個表,子類subclass:映射為單獨的表,在數(shù)據(jù)庫中,它們之間的關系通過外鍵(Foreign Key)表示。這種映射策略不需要任何Hibernate的特殊映射聲明,只需要把每一個類的映射包含在class/class聲明中,并且為每個類定義一個表屬性。這種方法的主要問題是它不能很好的支持多態(tài)關系。還有就是在這些表中,不同表的不同列屬性有共同的語意,如子類繼承超類的屬性,這使關系的維護更復雜了。例如對超類屬性的改變會導致很多列的改變,這也使在子類上執(zhí)行數(shù)據(jù)完整性約束更加困難。2) 整個類層次關系映射為一個表。作為對“一個類一個表”策略的替代,我們可以把整個類層次關系映射為一個表,這個表的列包括類層次關系中所有類的屬性。每一個具體的子類用特定的行來表示,它可以通過列discriminator的值來識別,如下所示:父類的映射增加一個discriminatorvalue屬性,它的值用來標志父類,同時增加一discriminator:class name=superClasstable=supertable discriminatorvalue=superdiscriminator column=colunmName type=Type /……在子類的映射中也增加一個discriminatorvalue屬性,它的值用來標志該子類:discriminatorvalue的值在分別查詢父類和子類時做查詢條件:subclassname=subClass discriminatorvalue=sub/ subclass/ class新增加的 discriminator列用來區(qū)分持久類,它不是類的屬性,由Hibernate內(nèi)部使用,它的值,即discriminatorvalue。給出的值會被Hibernate自動設置和檢索。整個層次關系,超類和子類都被映射在了同一張表中,超類用class聲明,子類用subclass聲明,當然,子類中又可以包括子類。這種映射策略進行多態(tài)查詢時可以一次執(zhí)行,在分別進行超類和子類查詢時,可以用discriminator列的值做條件,因為超類和子類有不同的discriminator值。3) 子類和超類映射為不同的表。即每一個在持久關系中定義的子類都映射為單獨的一個表。與第一種策略不同的是,子類對應的表只包括非繼承屬性,即每一個屬性都是子類特有的。每一個子類的表有一個主鍵與超類相關聯(lián)。映射文件中子類的聲明用joinedsubclass表示,嵌套在class中,并且要聲明一個主鍵key。這種策略的主要好處是關系模型完全規(guī)格化,完整性約束的定義也直截了當。對特定子類的多態(tài)聯(lián)結(jié)是通過指向該子類的表的外鍵來表示的。Hibernate在執(zhí)行多態(tài)查詢的時候,自動把超類和子類的表外聯(lián)接(outer join)查詢,如果只限制在對子類查詢時,Hibernate使用內(nèi)聯(lián)接(inner join)。根據(jù)經(jīng)驗來看,復雜的類層次執(zhí)行效率讓人無法接受,查詢需要聯(lián)接多個表或者許多順序讀操作。因此,針對應用程序中的類層次,必須選擇一種合適的映射策略或者對映射策略做一個適當?shù)慕M合。一般有以下原則:在不要求多態(tài)關聯(lián)和查詢時,傾向于使用一個類一個表的映射策略;如果要使用多態(tài)關聯(lián)并且子類中聲明的屬性相對較少,則傾向于使用一個類層次一個表的映射策略:如果要求多態(tài)關聯(lián)和查詢,并且子類聲明的屬性比較多,則使用一個子類一個表的映射策略。 查詢機制 查詢方法檢索持久對象是Hibernate的另一項重要功能。Hibernate提供了以下幾種從數(shù)據(jù)庫中得到對象的方法:1)通過對對象圖的導航,從一個已經(jīng)裝載的對象開始,由它的屬性訪問方法來訪問相關聯(lián)的對象。當用戶導航對象圖的時候,如果Session處于打開狀態(tài),Hibernate會自動裝載或者預裝載對象圖中的結(jié)點。2)通過標志符檢索。當已知對象的唯一標志符時,這種方法是最方便性能最好的。用標志符檢索對象可以用loads和geto兩種方法。3)使用Hibernate提供的查詢語言(HQL),它是一個完全面向?qū)ο蟮牟樵冋Z言。HQL是SQL的一個面向?qū)ο蟮姆窖?,它與ODMG OQL(對象數(shù)據(jù)庫查詢語言)和EJBQL有非常類似,但是與OQL不同的是它適用于使用SQL的數(shù)據(jù)庫,并且比EJBQL功能更強大更優(yōu)雅。HQL不是一個數(shù)據(jù)操縱語言,它只用來檢索對象,而不是更新刪除數(shù)據(jù)。對象狀態(tài)的同步是持久化管理器的工作而不是開發(fā)者的工作。HQL有以下高級特性:u 把數(shù)據(jù)約束應用到關聯(lián)對象的屬性:u 在事務范圍內(nèi)不裝載實體本身而檢索實體的屬性,這也被稱為報告查(report query)或更確切的叫做注射(projection);u 對查詢結(jié)果排序;u 對查詢結(jié)果分頁;u 通過groupby, having或者sum, max等函數(shù)對結(jié)果集進行分類;u 當檢索一行多對象時使用外聯(lián)接;u 調(diào)用用戶定義的SQL函數(shù);u 子查詢(嵌套查詢)。4)使用Hibernate提供的Criteria API查詢。Criteria API提供了一個類型安全的、面向?qū)ο蟮姆椒▉韴?zhí)行查詢,而不需要字符串操縱。它包括了基于實例對象的查詢。5) ,幾乎所有流行的數(shù)據(jù)庫它都支持,因此,用戶也可以直接使用自己熟悉的數(shù)據(jù)庫語言進行查詢。在實際的Hibernate應用程序中,各種檢索方法可以聯(lián)合使用,每一種檢索方法可以使用不同的數(shù)據(jù)獲取策略。這樣可以為應用程序中的用例找到最好的檢索方法和數(shù)據(jù)獲取策略,同時最小化SQL查詢語句的數(shù)量,獲得最佳性能.在傳統(tǒng)的關系數(shù)據(jù)訪問中,利用內(nèi)聯(lián)接和外聯(lián)接檢索關聯(lián)實體,可以用一條SQL語句獲取特定計算要求的數(shù)據(jù)。ORM中最難的問題之一是為關系數(shù)據(jù)提供有效的訪問。 數(shù)據(jù)獲取策略Hibernate為每一種關聯(lián)提供了四種獲取策略以供選擇:立即獲取——使用連續(xù)的數(shù)據(jù)庫讀操作或緩存查找,關聯(lián)的對象被立即獲取。立即獲取通常不是有效的獲取策略,除非想讓關聯(lián)的實體總是被保存在高速緩存中。延遲獲取——當用戶不希望數(shù)據(jù)在第一次就全部裝載到內(nèi)存中時,關聯(lián)的對象或集合在第一次訪問時被延遲獲取,這導致對數(shù)據(jù)庫的一次新的請求,除非關聯(lián)對象被保存在高速緩存中。延遲獲取可以讓用戶決定第一次訪問數(shù)據(jù)庫時有多少對象要被裝載、哪些關聯(lián)要被裝載。延遲獲取是對象持久化中一個基本的概念,也是達到滿意性能的第一步。在映射文件中,對關聯(lián)的獲取策略開始都設為延遲獲取。延遲獲取有助于減少數(shù)據(jù)庫裝載,但對于性能最優(yōu)化來說,它是一個盲目的猜測??释@取——明確的說明了哪些關聯(lián)對象應該和參照對象一起裝載Hibernate利用外聯(lián)接SQL查詢在一次數(shù)據(jù)庫請求中返回關聯(lián)對象。Hibernate中的性能優(yōu)化通常包括為特定的事務明智的使用渴望獲取。一種普遍的做法是在運行時為一個特定的HQL或者標準查詢說明使用這種獲取策略。批量獲取——批量獲取不是一種嚴格的關聯(lián)獲取策略,它是一種改善延遲獲取或立即獲取性能的技術(shù)。 Hibernate的優(yōu)點 Hibernate作為一個開源的ORM框架,它基于JDBC提供了一種持久性數(shù)據(jù)管理的方案,可以將每一個物理表格(Table)映射成為對象(Object)。由于Hibernate是基于JDBC的,而且相對于實體Bean來說是相當輕量級的,所以它的數(shù)據(jù)庫查詢的能力非常強大且其自身也提供了HQL查詢語句。目前,Hibernate可以和多種Web服務器或者應用服務器進行良好的集成,支持幾乎所有的流行的數(shù)據(jù)庫服務器。(1) Hibernate使用Java反射機制而不是字節(jié)碼增強程序來實現(xiàn)透明性,構(gòu)造過程簡單、明了。(2) 因為Hibernate是個輕量級框架,所以它的運行性能非常高,訪問持久層數(shù)據(jù)的速度也很快。(3) Hibernate的對象關系映射具有很強的靈活性,支持各種關系數(shù)據(jù)庫,從一對多到多對多的各種復雜關系。(4) Hibernate各種配置文件只需一次編寫,部署簡單方便,具有較強的可移植性。(5) Hibernate的設計與構(gòu)建過程簡單、易學。Hibernate的開放文檔資源更新速度很快,開發(fā)人員可以及時了解其發(fā)展變化動態(tài)。 第3章 多級查詢在資產(chǎn)管理中的應用 企業(yè)資產(chǎn)管理系統(tǒng)項目介紹企業(yè)資產(chǎn)管理在我國企事業(yè)單位的資產(chǎn)管理中是一個薄弱環(huán)節(jié),也是一個必須要加強的環(huán)節(jié)。企業(yè)資產(chǎn)的流失、閑置、重復采購及責任的不明確等,都導致了企業(yè)資產(chǎn)的嚴重浪費。為了使企業(yè)資產(chǎn)能夠充分有效的利用,必須對企業(yè)資產(chǎn)進行有效的管理。企業(yè)資產(chǎn)管理系統(tǒng)是立足企事業(yè)單位后勤發(fā)展,集數(shù)據(jù)集成、電子報表、分類匯總、自動生成、網(wǎng)絡傳遞、多極查詢于一體的企業(yè)資產(chǎn)管理系統(tǒng),是與現(xiàn)行住房檔案管理信息系統(tǒng)和企業(yè)資產(chǎn)上報系統(tǒng)相互支持,配套的智能化技術(shù)平臺,整體上建成運作簡便、管理科學、效率很高、最終能實現(xiàn)無紙化辦公的品牌服務窗口。系統(tǒng)為集中采購提供了技術(shù)手段,從資產(chǎn)采購選型開始,提交采購申報,分配到責任人管理維護維修,最后的報廢處理的全過程進行管理。記錄資產(chǎn)的各種屬性,記錄資產(chǎn)的變更、報廢的情況,提供個人查詢、領導查詢等多級查詢功能。將資產(chǎn)的登記與財務報賬連接、資產(chǎn)與責任人掛鉤,并與人事部門連接,實現(xiàn)動態(tài)實時的查詢功能,防止企業(yè)資產(chǎn)的流失和浪費。系統(tǒng)還提供耗材管理功能,供網(wǎng)上耗材申領和核發(fā),統(tǒng)計耗材領用情況。 產(chǎn)品環(huán)境介紹采用J2EE的體系結(jié)構(gòu),采用Spring+Struts+Hibernate框架結(jié)合的方式來開發(fā)應用系統(tǒng)。Struts(MVC框架)WEB層頁 面 .j
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1