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

正文內(nèi)容

企業(yè)資產(chǎn)管理系統(tǒng)中電子報(bào)表功能的設(shè)計(jì)和實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-21 02:11 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ,Plain Ordinary Java Object,Plain Old Java Object,兩個(gè)差不多,意思都是普通的Java類,所以也不用去管誰(shuí)對(duì)誰(shuí)錯(cuò)。POJO可以看做是簡(jiǎn)單的JavaBean(具有一系列Getter,Setter方法的類)。嚴(yán)格區(qū)分這里面的概念沒(méi)有太大意義,了解一下就行。 IoCIoC的全稱是Inversion of Control,中文翻譯反向控制或者逆向控制。這里的反向是相對(duì)EJB來(lái)講的。EJB使用JNDI來(lái)查找需要的對(duì)象,是主動(dòng)的,而Spring是把依賴的對(duì)象注入給相應(yīng)的類(這里涉及到另外一個(gè)概念“依賴注入”,稍后解釋),是被動(dòng)的,所以稱之為“反向”。(AOP)切面編程就類似于動(dòng)態(tài)代理,比如你寫了很多方法,在使用這些方法前需要做很多相同的操作,那樣你必須在每個(gè)方法前加上很多很多相同的代碼,那樣你的代碼會(huì)看起來(lái)很冗長(zhǎng),而且寫起來(lái)很會(huì)很讓人絕望。切面編程(AOP)技術(shù)就能大大的減少你的工作量。AOP技術(shù)涉及到的概念有:aspect,就哪些你要重復(fù)在其他方法前或后或中間執(zhí)行的方法;Pointcut,就是聲明是哪些方法會(huì)被插入aspect;,就是聲明在pointcut之前還是之后執(zhí)行;在定義好這三點(diǎn),你就能實(shí)現(xiàn)AOP技術(shù)了。 Hibernate簡(jiǎn)介報(bào)表實(shí)現(xiàn)和數(shù)據(jù)庫(kù)的關(guān)系很密切,對(duì)Hibernate的介紹會(huì)稍為的全面點(diǎn)。Hibernate是一個(gè)免費(fèi)的開源Java包,它使得與關(guān)系數(shù)據(jù)庫(kù)打交道變得十分輕松,就像您的數(shù)據(jù)庫(kù)中包含每天使用的普通Java對(duì)象一樣,同時(shí)不必考慮如何把它們從神秘的數(shù)據(jù)庫(kù)表中取出(或放回到數(shù)據(jù)庫(kù)表中)。它解放了您,使您可以專注于應(yīng)用程序的對(duì)象和功能,而不必?fù)?dān)心如何保存它們或稍后如何找到它們。本文討論以下內(nèi)容:歷史與背景 大多數(shù)應(yīng)用程序都需要處理數(shù)據(jù)。Java應(yīng)用程序運(yùn)行時(shí),往往把數(shù)據(jù)封裝為相互連接的對(duì)象網(wǎng)絡(luò),但是當(dāng)程序結(jié)束時(shí),這些對(duì)象就會(huì)消失在一團(tuán)邏輯中,所以需要有一些保存它們的方法。有時(shí)候,甚至在編寫應(yīng)用程序之前,數(shù)據(jù)就已經(jīng)存在了,所以需要有讀入它們和將其表示為對(duì)象的方法。手動(dòng)編寫代碼來(lái)執(zhí)行這些任務(wù)不僅單調(diào)乏味、易于出錯(cuò),而且會(huì)占用整個(gè)應(yīng)用程序的很大一部分開發(fā)工作量。 優(yōu)秀的面向?qū)ο箝_發(fā)人員厭倦了這種重復(fù)性的勞動(dòng),他們開始采用通常的“積極”偷懶做法,即,創(chuàng)建工具,使整個(gè)過(guò)程自動(dòng)化。對(duì)于關(guān)系數(shù)據(jù)庫(kù)來(lái)說(shuō),這種努力的最大成果就是對(duì)象/關(guān)系映射(ORM)工具。 這類工具有很多,從昂貴的商業(yè)產(chǎn)品到內(nèi)置于J2EE中的EJB標(biāo)準(zhǔn)。然而,在很多情況下,這些工具具有自身的復(fù)雜性,使得開發(fā)人員必須學(xué)習(xí)使用它們的詳細(xì)規(guī)則,并修改組成應(yīng)用程序的類以滿足映射系統(tǒng)的需要。由于這些工具為應(yīng)付更加嚴(yán)格和復(fù)雜的企業(yè)需求而不斷發(fā)展,于是在比較簡(jiǎn)單和常見(jiàn)的場(chǎng)景中,使用它們所面臨的復(fù)雜性反而蓋過(guò)了所能獲得的好處。這引起了一場(chǎng)革命,促進(jìn)了輕量級(jí)解決方案的出現(xiàn),而Hibernate就是這樣的一個(gè)例子。Hibernate的工作方式 Hibernate不會(huì)對(duì)您造成妨礙,也不會(huì)強(qiáng)迫您修改對(duì)象的行為方式。它們不需要實(shí)現(xiàn)任何不可思議的接口以便能夠持續(xù)存在。惟一需要做的就是創(chuàng)建一份 XML“映射文檔”,告訴Hibernate您希望能夠保存在數(shù)據(jù)庫(kù)中的類,以及它們?nèi)绾侮P(guān)聯(lián)到該數(shù)據(jù)庫(kù)中的表和列,然后就可以要求它以對(duì)象的形式獲取數(shù)據(jù),或者把對(duì)象保存為數(shù)據(jù)。與其他解決方案相比,它幾乎已經(jīng)很完美了。運(yùn)行時(shí),Hibernate讀取映射文檔,然后動(dòng)態(tài)構(gòu)建Java類,以便管理數(shù)據(jù)庫(kù)與Java之間的轉(zhuǎn)換。在Hibernate中有一個(gè)簡(jiǎn)單而直觀的API,用于對(duì)數(shù)據(jù)庫(kù)所表示的對(duì)象執(zhí)行查詢。要修改這些對(duì)象,(一般情況下)只需在程序中與它們進(jìn)行交互,然后告訴Hibernate保存修改即可。類似地,創(chuàng)建新對(duì)象也很簡(jiǎn)單;只需以常規(guī)方式創(chuàng)建它們,然后告訴Hibernate有關(guān)它們的信息,這樣就能在數(shù)據(jù)庫(kù)中保存它們。 Hibernate API學(xué)習(xí)起來(lái)很簡(jiǎn)單,而且它與程序流的交互相當(dāng)自然。在適當(dāng)?shù)奈恢谜{(diào)用它,就可以達(dá)成目的。它帶來(lái)了很多自動(dòng)化和代碼節(jié)省方面的好處,所以花一點(diǎn)時(shí)間學(xué)習(xí)它是值得的。而且還可以獲得另一個(gè)好處,即代碼不用關(guān)心要使用的數(shù)據(jù)庫(kù)種類(否則的話甚至必須知道)。我所在的公司就曾有過(guò)在開發(fā)過(guò)程后期被迫更換數(shù)據(jù)庫(kù)廠商的經(jīng)歷。這會(huì)造成巨大的災(zāi)難,但是借助于Hibernate,只需要簡(jiǎn)單地修改Hibernate配置文件即可。這里的討論假定您已經(jīng)通過(guò)創(chuàng)建Hibernate映射文檔,建立了一個(gè)關(guān)系數(shù)據(jù)庫(kù),并且擁有要映射的Java類。有一個(gè)Hibernate“工具集”可在編譯時(shí)使用,以支持不同的工作流。例如,如果您已經(jīng)擁有Java類和映射文檔,Hibernate可以為您創(chuàng)建(或更新)必需的數(shù)據(jù)庫(kù)表?;蛘?,僅僅從映射文檔開始,Hibernate也能夠生成數(shù)據(jù)類。或者,它可以反向設(shè)計(jì)您的數(shù)據(jù)庫(kù)和類,從而擬定映射文檔。還有一些用于Eclipse的alpha 插件,它們可以在IDE中提供智能的編輯支持以及對(duì)這些工具的圖形訪問(wèn)。 如果您使用的是Hibernate 2環(huán)境,這些工具鮮有提供,但是存在可用的第三方工具。使用Hibernate的場(chǎng)合 既然Hibernate看起來(lái)如此靈活好用,為什么還要使用其他的工具呢?下面有一些場(chǎng)景,可以幫助您做出判斷(或許通過(guò)提供一些比較和上下文,可以有助于鑒別非常適用Hibernate的場(chǎng)合)。如果應(yīng)用對(duì)于數(shù)據(jù)存儲(chǔ)的需要十分簡(jiǎn)單——例如,您只想管理一組用戶優(yōu)先選擇——您根本不需要數(shù)據(jù)庫(kù),更不用說(shuō)一個(gè)優(yōu)秀的對(duì)象關(guān)系映射系統(tǒng)了(即使它也如Hibernate這般易于使用)!從Java ,有一個(gè)標(biāo)準(zhǔn)的Java Preferences API可以很好地發(fā)揮這個(gè)作用。(在ONJava文章中可以找到有關(guān)Preferences API的更多信息。) 對(duì)于熟悉使用關(guān)系數(shù)據(jù)庫(kù)和了解如何執(zhí)行完美的SQL查詢與企業(yè)數(shù)據(jù)庫(kù)交互的人來(lái)說(shuō),Hibernate似乎有些礙手礙腳,這就像帶有動(dòng)力和自動(dòng)排擋的快艇車會(huì)使注重性能的賽車駕駛員不耐煩一樣。如果您屬于這種人,如果您所在的項(xiàng)目團(tuán)隊(duì)擁有一個(gè)強(qiáng)大的DBA,或者有一些存儲(chǔ)過(guò)程要處理,您可能想研究一下iBATIS。Hibernate 的創(chuàng)建者本身就把iBATIS當(dāng)作是另一種有趣的選擇。我對(duì)它很有興趣,因?yàn)槲覀冊(cè)鵀橐粋€(gè)電子商務(wù)站點(diǎn)開發(fā)了一個(gè)類似的系統(tǒng)(其功能更為強(qiáng)大),而且從那時(shí)到現(xiàn)在,我們已經(jīng)在其他環(huán)境中使用過(guò)它,盡管在發(fā)現(xiàn)Hibernate之后,在新項(xiàng)目中我們通常更喜歡使用Hibernate。您可以認(rèn)為,以SQL為中心的解決方案(比如iBATIS)是“反向的”對(duì)象/關(guān)系映射工具,而Hibernate是一個(gè)更為傳統(tǒng)的ORM。 當(dāng)然,還有其他的外部原因會(huì)導(dǎo)致采用另外的方法。比如,在一個(gè)企業(yè)環(huán)境中,必須使用成熟的EJB架構(gòu)(或者其他的一些非普通對(duì)象映射系統(tǒng))。可以為提供自己的數(shù)據(jù)存儲(chǔ)工具的平臺(tái)量身定做代碼,比如Mac OS X39。s Core Data。使用的可能是像XML DTD這樣的存儲(chǔ)規(guī)范,而它根本不涉及關(guān)系數(shù)據(jù)庫(kù)。但是,如果您使用的是富對(duì)象模型,而且想要靈活、輕松且高效地保存它(無(wú)論您是否正要開始或已經(jīng)決定使用關(guān)系數(shù)據(jù)庫(kù),只要這是一個(gè)選擇——而且存在可用的優(yōu)秀免費(fèi)數(shù)據(jù)庫(kù),比如MySQL,或可嵌入Java的HSQLDB,它就應(yīng)該始終是一個(gè)選擇),那么Hibernate很可能就是您理想的選擇。您可能會(huì)驚訝于節(jié)省的時(shí)間之多,以及您將會(huì)多么地喜歡使用它。 經(jīng)過(guò)一個(gè)月的實(shí)踐,Hibernate技術(shù)需要為每張表寫一個(gè)對(duì)應(yīng)的類,類中的成員變量是表中每個(gè)字段對(duì)應(yīng)的類型和名字。然后,每個(gè)對(duì)應(yīng)的類,都需要寫出相應(yīng)的DAO,就是增刪改查的方法。這個(gè)DAO方法和JDBC中的DAO方法其實(shí)差不對(duì),hibernate的方便之處是它能直接保存一個(gè)對(duì)象進(jìn)入數(shù)據(jù)庫(kù),那個(gè)對(duì)象就會(huì)成為數(shù)據(jù)庫(kù)中的一條記錄,而不用像JDBC那樣一個(gè)字段一個(gè)字段的賦值,然后保存。Hibernate的所有操作都是針對(duì)對(duì)象的,而不是針對(duì)表中的某一個(gè)字段的,操作簡(jiǎn)介方便的,深受歡迎。在Hibernate出現(xiàn)的對(duì)象有三種狀態(tài):,就是一個(gè)對(duì)象剛剛new出來(lái),還沒(méi)有關(guān)聯(lián)session;,就是這個(gè)對(duì)象與session關(guān)聯(lián),與數(shù)據(jù)庫(kù)的數(shù)據(jù)有對(duì)應(yīng),session沒(méi)有關(guān)閉,但是事務(wù)沒(méi)有被提交。一旦事務(wù)提交后,它就會(huì)對(duì)數(shù)據(jù)庫(kù)產(chǎn)生影響;,session已經(jīng)關(guān)閉,數(shù)據(jù)庫(kù)中沒(méi)數(shù)據(jù)與之對(duì)應(yīng),對(duì)它進(jìn)行改動(dòng)是不會(huì)影響到數(shù)據(jù)庫(kù)的。Hibernate的核心接口一共有5個(gè),分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個(gè)核心接口在任何開發(fā)中都會(huì)用到。通過(guò)這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這五個(gè)核心接口分別加以介紹?! ession接口:Session接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見(jiàn)的SQL語(yǔ)句。)。但需要注意的是Session對(duì)象是非線程安全的。同時(shí),Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語(yǔ)時(shí),其實(shí)指的是Hibernate中的session,而以后會(huì)將HttpSesion對(duì)象稱為用戶session?! essionFactory接口:SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫(kù)時(shí),可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè)SessionFactory?! onfiguration接口:Configuration接口負(fù)責(zé)配置并啟動(dòng)Hibernate,創(chuàng)建SessionFactory對(duì)象。在Hibernate的啟動(dòng)的過(guò)程中,Configuration類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對(duì)象?! ransaction接口:Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼。  Query和Criteria接口:Query和Cr
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1