基于SSH的客商管理系統(tǒng)論文_第1頁
基于SSH的客商管理系統(tǒng)論文_第2頁
基于SSH的客商管理系統(tǒng)論文_第3頁
基于SSH的客商管理系統(tǒng)論文_第4頁
基于SSH的客商管理系統(tǒng)論文_第5頁
已閱讀5頁,還剩276頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、目錄1. 客商信息編碼系統(tǒng)之ssh技術(shù)支持41.1 任務目標101.2任務描述111.3 任務實施111.4 任務小結(jié)211.5 知識拓展221.5.1action221.5.2 bean標簽261.5.3 web.xml常用元素271.5.4 checkbox291.5.5 div291.5.6 hidden301.5.7 label301.5.8 param311.5.9 password311.5.10 property311.5.11 radio321.5.12 set331.5.13 submit341.5.14 text361.5.15 textarea361.5.16 textf

2、ield371.5.17 url381.6 課后實踐392、客商信息編碼系統(tǒng)之系統(tǒng)設計392.1 任務目標392.2 任務描述402.3 任務實施402.4 任務小結(jié)492.5 知識拓展492.6 課后實踐533、客商信息編碼系統(tǒng)之數(shù)據(jù)庫設計533.1 任務目標533.2 任務描述543.3 任務實施543.4 任務小結(jié)633.5 知識拓展633.6 課后實踐634.客商信息編碼系統(tǒng)之用戶管理644.1任務目標644.2任務描述644.3.1任務實施654.3.2普通用戶管理模塊774.3.3代碼編寫794.3.4 struts配置854.3.5 application配置864.4任務小結(jié)9

3、04.5知識拓展904.6課后實踐(博客系統(tǒng))905、客商信息編碼系統(tǒng)之新增客商申請與審批905.1任務目標915.2任務描述915.3任務實施915.3.1.客商申請模塊915.3.2客商申請審批模塊1005.3.3 代碼編寫1105.3.4 struts配置1145.3.5application1155.4任務小結(jié)1175.5知識拓展1175.6課后實踐(博客系統(tǒng))1216.客商信息編碼系統(tǒng)之客商變更申請與審批1216.1任務目標1216.2任務描述1216.3任務實施1226.3.1 客商變更申請1226.3.2客商變更審批1306.3.3代碼編寫1386.3.4 struts配置142

4、6.3.5 application配置1436.4任務小結(jié)1476.5知識拓展1476.6課后實踐(博客系統(tǒng))1507.客商信息編碼系統(tǒng)之客商合并申請與審批1507.1任務目標1517.2任務描述1517.2.1.普通用戶的合并申請1517.2.2.管理員的合并審批1517.3任務實施1517.3.1相關(guān)操作(注:普通用戶只有申請的權(quán)限)1517.3.2管理員用戶的相關(guān)操作(注:管理員用戶只有審批的權(quán)限)1587.3.3 代碼編寫1707.3.5 struts配置1757.3.5 application配置1767.4任務小結(jié)1817.5知識拓展1817.6課后實踐1818.客商信息編碼系統(tǒng)之

5、消息管理1828.1任務目標1838.2任務描述1838.3任務實施1858.3.1個人消息管理模塊1858.3.2.系統(tǒng)消息管理模塊2068.3.3.公告消息管理模塊2208.3.4 struts.xml文件代碼2448.3.5 applicationcontext.xml文件代碼2478.4任務小結(jié)2528.5知識拓展2528.6課后實踐(博客系統(tǒng))2629.客商信息編碼系統(tǒng)之系統(tǒng)測試與發(fā)布2629.1任務目標2629.2任務描述2639.3任務實施2659.4任務小結(jié)2669.5知識拓展2689.6課后實踐(博客系統(tǒng))26810、客商信息編碼系統(tǒng)之實用組件(第三方組件)26810.1 任

6、務目標26810.2 任務描述26810.3 任務實施26910.3.1日歷組件26910.3.2文本編輯器組件27310.4 任務小結(jié)27710.5 知識拓展27710.6 課后實踐2781. 客商信息編碼系統(tǒng)之ssh技術(shù)支持 內(nèi)容導讀ssh 在j2ee項目中表示了3種框架,即 spring + struts +hibernate。如圖1圖1-1 ssh框架圖1)struts:struts 對model,view和controller都提供了對應的組件。 actionservlet,這個類是struts的核心控制器,負責攔截來自用戶的請求。圖2中,actionservlet,這個類是stru

7、ts的核心控制器,負責攔截來自用戶的請求。 圖1-2 struts 結(jié)構(gòu)圖 action,這個類通常由用戶提供,該控制器負責接收來自actionservlet的請求,并根據(jù)該請求調(diào)用模型的業(yè)務邏輯方法處理請求,并將處理結(jié)果返回給jsp頁面顯示。(1)model部分 由javabean構(gòu)成。javabean則封裝了底層的業(yè)務邏輯,包括數(shù)據(jù)庫訪問等。(2)view部分 該部分采用jsp實現(xiàn)。 struts提供了豐富的標簽庫,通過標簽庫可以減少腳本的使用,自定義的標簽庫可以實現(xiàn)與 model的有效交互,并增加了現(xiàn)實功能。對應上圖的jsp部分。(3)controller組件 controller組件有

8、兩個部分組成系統(tǒng)核心控制器,業(yè)務邏輯控制器。 系統(tǒng)核心控制器,對應上圖的actionservlet。該控制器由struts框架提供,繼承httpservlet類,因此可以配置成標注的servlet。該控制器負責攔截所有的http請求,然后根據(jù)用戶請求決定是否要轉(zhuǎn)給業(yè)務邏輯控制器。 業(yè)務邏輯控制器,負責處理用戶請求,本身不具備處理能力,而是調(diào)用model來完成處理。對應 action部分。2)spring: spring是一個開源框架,它由rod johnson創(chuàng)建。它是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的。spring使用基本的javabean來完成以前只可能由ejb完成的事情。然而,spri

9、ng的用途不僅限于服務器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何java應用都可以從spring中受益。 目的:解決企業(yè)應用開發(fā)的復雜性 功能:使用基本的javabean代替ejb,并提供了更多的企業(yè)應用功能 范圍:任何java應用 簡單來說,spring是一個輕量級的控制反轉(zhuǎn)(ioc)和面向切面(aop)的容器框架。輕量從大小與開銷兩方面而言spring都是輕量的。完整的spring 框架可以在一個大小只有1mb多的jar文件里發(fā)布。并且spring所需的處理開銷也是微不足道的。此外,spring是非侵入式的:典型地,spring應用中的對象不依賴于spring的特定類??刂品崔D(zhuǎn)

10、spring通過一種稱作控制反轉(zhuǎn)(ioc)的技術(shù)促進了松耦合。當應用了ioc,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認為ioc與jndi相反不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。面向切面spring提供了面向切面編程的豐富支持,允許通過分離應用的業(yè)務邏輯與系統(tǒng)級服務(例如審計(auditing)和事務(transaction)管理)進行內(nèi)聚性的開發(fā)。應用對象只實現(xiàn)它們應該做的完成業(yè)務邏輯僅此而已。它們并不負責(甚至是意識)其它的系統(tǒng)級關(guān)注點,例如日志或事務支持。容器spring包含并管理應用對象

11、的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創(chuàng)建基于一個可配置原型(prototype),你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個新的實例以及它們是如何相互關(guān)聯(lián)的。然而,spring不應該被混同于傳統(tǒng)的重量級的ejb容器,它們經(jīng)常是龐大與笨重的,難以使用??蚣躶pring可以將簡單的組件配置、組合成為復雜的應用。在 spring中,應用對象被聲明式地組合,典型地是在一個xml文件里。spring也提供了很多基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發(fā)留給了你。 所有spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試

12、的代碼。它們也為 spring中的各種模塊提供了基礎支持。spring 框架結(jié)構(gòu)如圖圖1-3 spring 框架結(jié)構(gòu)如圖3)hibernate: hibernate是一個開放源代碼的對象關(guān)系映射框架,它對jdbc進行了非常輕量級的對象封裝,使得java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 hibernate可以應用在任何使用jdbc的場合,既可以在java的客戶端程序使用,也可以在servlet/jsp的web應用中使用,最具革命意義的是,hibernate可以在應用ejb的j2ee架構(gòu)中取代cmp,完成數(shù)據(jù)持久化的重任。 hibernate的核心接口一共有5個,分別為:sess

13、ion、sessionfactory、 transaction、query和configuration。這5 個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這五個核心接口分別加以介紹。 (1) session接口:session接口負責執(zhí)行被持久化對象的crud操作 (crud的任務是完成與數(shù)據(jù)庫的交流,包含了很多常見的sql語句。)。但需要注意的是session對象是非線程安全的。同時,hibernate的 session不同于jsp應用中的httpsession。這里當使用session這個術(shù)語時,其實指的是hibernate中的se

14、ssion,而以后會將httpsesion對象稱為用戶session。 (2) sessionfactory接口:sessionfactory接口負責初始化hibernate。它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建session對象。這里用到了工廠模式。需要注意的是sessionfactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個sessionfactory就夠,當需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個 sessionfactory。 (3) configuration接口:configuration 接口負責配置并啟動hibernate,創(chuàng)建sessionfactory對

15、象。在hibernate的啟動的過程中,configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建sessionfactory對象。 (4) transaction接口:transaction接口負責事務相關(guān)的操作。它是可選的,開發(fā)人員也可以設計編寫自己的底層事務處理代碼。 (5)query和criteria接口:query和criteria接口負責執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用hql語言或sql語句兩種表達方式。(6)反射hibernate 對象三種狀態(tài):圖1-4 hibernate 對象三種狀態(tài)圖持久態(tài)對象的標志是它有id值,并且會被存入session的一級緩存。特點是對它

16、們的操作hibernate是能夠知道的并且在調(diào)用session.flush()方法時將對它們的更新操作(如obj.setxxx()方法)同步到數(shù)據(jù)庫。在調(diào)用commit()方法前會自動調(diào)用flush()方法,用戶也可以自己調(diào)用flush()方法。調(diào)用session.clear()方法會清空一級緩存,將所有的持久化對象變?yōu)槊摴艿模虼苏{(diào)用clear()方法前一定要調(diào)用session.flush()方法,將一級緩存中的持久化對象同步到數(shù)據(jù)庫。脫管對象與瞬時對象都不在hibernate的管理中,它們的區(qū)別是脫管對象有id值,數(shù)據(jù)庫中有記錄和它對應,但瞬時對象沒有id值也沒有數(shù)據(jù)庫記錄和它對應。要強調(diào)

17、的是瞬時對象調(diào)用session.save(obj)方法后對象雖然變?yōu)槌志脩B(tài)的,有id值,但是此時數(shù)據(jù)庫中不一定有一條記錄和對象對應。如果對象的主鍵生成策略是“native”,那么hibernate使用數(shù)據(jù)庫自身的機制生成主鍵(mysql是auto_increment,oracle使用squence機制),這時只有當數(shù)據(jù)插入到數(shù)據(jù)庫后才會得到它的主鍵,因此會在session.save(obj)方法時向數(shù)據(jù)庫發(fā)送insert語句,因此session.save(obj)后數(shù)據(jù)庫中有記錄和對象對應,但是如果對象的主鍵生成策略是“uuid”或“hilo”,這時要生成對象的id不需要將對象插入數(shù)據(jù)庫(uu

18、id方式不需要訪問數(shù)據(jù)庫,根據(jù)主機ip等信息生成,hilo方式hiberhinate維護數(shù)據(jù)庫中一張用于生成id的表),這時session.save(obj)后對象有id值,但數(shù)據(jù)庫中沒有記錄和它對應,只有調(diào)用flush()方法后才會發(fā)送insert語句,將對象和數(shù)據(jù)庫同步。(7)實體對象的生命周期有三種狀態(tài): ransient(自由狀態(tài)) 此時的實體對象和數(shù)據(jù)庫中的記錄無關(guān)聯(lián),只是一個普通的javabean。 persistent(持久狀態(tài)) 此時的實體對象和數(shù)據(jù)庫中的記錄有關(guān)聯(lián),其變更將由hibernate固化到數(shù)據(jù)庫中。該實體對象處于由hibernate框架所管理的狀態(tài)。 detache

19、d(游離狀態(tài)) 處于persistent狀態(tài)的對象,其對應的session實例關(guān)閉之后,那么,此對象就處于detached狀態(tài)。detached狀態(tài)和transient狀態(tài)的區(qū)別在于detached狀態(tài)的對象可以再次與某個session實例相關(guān)聯(lián)而成為persistent對象。 從實體對象是否被納入hibernate實體管理容器的角度,transient和detached狀態(tài)的實體對象可以統(tǒng)稱為vo(value object),而被管理的實體對象稱為po(persistent object)。兩者的區(qū)別: vo是相對獨立的實體對象,處于非管理狀態(tài)。 po是hibernate納入其實體管理容器(

20、entity map)的對象,它代表了與數(shù)據(jù)庫中某條記錄對應的hibernate實體,po的變化在事務提交時將反映到實際數(shù)據(jù)庫中。 如果一個po與其對應的session實例分離,那么此時,它又會變成一個vo。 hibernate的對象有3種狀態(tài), 分別為: 瞬時態(tài)(transient)、 持久態(tài)(persistent)、 脫管態(tài)(detached). 處于持久態(tài)的對象也稱為po(persistenceobject),瞬時對象和脫管對象也稱為vo(valueobject).瞬時態(tài)由new命令開辟內(nèi)存空間的java對象,eg.person person=new person(xiaoxiao,女)

21、;如果沒有變量對該對象進行引用,它將被java虛擬機回收.瞬時對象在內(nèi)存孤立存在,它是攜帶信息的載體,不和數(shù)據(jù)庫的數(shù)據(jù)有任何關(guān)聯(lián)關(guān)系,在hibernate中,可通過session的save()或saveorupdate()方法將瞬時對象與數(shù)據(jù)庫相關(guān)聯(lián),并將數(shù)據(jù)對應的插入數(shù)據(jù)庫中,此時該瞬時對象轉(zhuǎn)變成持久化對象.持久態(tài)處于該狀態(tài)的對象在數(shù)據(jù)庫中具有對應的記錄,并擁有一個持久化標識.如果是用hibernate的delete()方法,對應的持久對象就變成瞬時對象,因數(shù)據(jù)庫中的對應數(shù)據(jù)已被刪除,該對象不再與數(shù)據(jù)庫的記錄關(guān)聯(lián).當一個session執(zhí)行close()或clear()、evict()之后,持

22、久對象變成脫管對象,此時持久對象會變成脫管對象,此時該對象雖然具有數(shù)據(jù)庫識別值,但它已不在hibernate持久層的管理之下.持久對象具有如下特點: 和session實例關(guān)聯(lián); 在數(shù)據(jù)庫中有與之關(guān)聯(lián)的記錄.脫管態(tài)當與某持久對象關(guān)聯(lián)的session被關(guān)閉后,該持久對象轉(zhuǎn)變?yōu)槊摴軐ο?當脫管對象被重新關(guān)聯(lián)到session上時,并再次轉(zhuǎn)變成持久對象.脫管對象擁有數(shù)據(jù)庫的識別值,可通過update()、saveorupdate()等方法,轉(zhuǎn)變成持久對象.脫管對象具有如下特點: 質(zhì)上與瞬時對象相同,在沒有任何變量引用它時,jvm會在適當?shù)臅r候?qū)⑺厥? 瞬時對象多了一個數(shù)據(jù)庫記錄標識值.例子:hiber

23、nate生命周期會經(jīng)歷三種不同的狀態(tài): 1.transient(瞬態(tài)):實體對象在內(nèi)存是自由存在的,即與數(shù)據(jù)庫中的數(shù)據(jù)沒有任何關(guān)系.換句話說就是:該實體從未與任何持久化上下文關(guān)聯(lián)過,它沒有持久化標識.例如: /創(chuàng)建一個transient對象 user user=new user();user.setname(username); user.setpassword(password); /此時的user為一個transient對象,因為沒有與任何數(shù)據(jù)庫的任何記錄相關(guān)聯(lián). 特征: 與數(shù)據(jù)庫中的記錄沒有任何關(guān)系,即沒有與其相關(guān)聯(lián)的數(shù)據(jù)庫記錄.與session沒有任何關(guān)系.即沒有通過session對象

24、的實例對其進行任何持久化的操作. 2.persistent(持久態(tài)):該實體對象處于hibernate框架所管理的狀態(tài),即這個實體對象與session對象的實例相關(guān)聯(lián).例如:/創(chuàng)建一個transient對象user user=new user(); user.setname(username); user.setpassword(password); /此時的user為一個transient對象,因為沒有與任何數(shù)據(jù)庫的任何記錄相關(guān)聯(lián). session session = sessionfactory.opensession(); transaction tx=session.begintran

25、saction(); /此時的user仍為一個transient對象session.save( user ); /此時的user為persistent mit(); /提交后向數(shù)據(jù)庫中加入一條記錄. transaction tx2=session.begintransaction(); user.setpassword(abc); mit();/雖然在這個事務中沒有調(diào)用session的save()方法來保存user對象/但由于user對象處于persistent狀態(tài),所以對user所做的任何修改都將被持久/化到數(shù)據(jù)庫,所以這時數(shù)據(jù)庫中的密碼已經(jīng)變?yōu)?abc; sess

26、ion.close(); 特征: 每個persistent狀態(tài)的實體對象都與一個session對象的實例相關(guān)聯(lián)處于persistent狀態(tài)的實體對象是與數(shù)據(jù)庫中的記錄相關(guān)聯(lián)的.hibernate會依據(jù)persistent狀態(tài)的實體對象的屬性變化而改變數(shù)據(jù)庫中相對應的記錄. 3.detached(游離態(tài)):對于persistent對象,當不再與它所對應的session對象相關(guān)聯(lián)時,這個對象就是游離態(tài). /創(chuàng)建一個transient對象 user user=new user();/posteditplain.aspx個人空間后臺 user.setna

27、me(username); user.setpassword(password); /此時的user為一個transient對象,因為沒有與任何數(shù)據(jù)庫的任何記錄相關(guān)聯(lián). session session = sessionfactory.opensession(); transaction tx=session.begintransaction(); /此時的user仍為一個transient對象 session.save( user ); /此時的user為persistent mit(); /提交后向數(shù)據(jù)庫中加入一條記錄. session.close(); /此時user為det

28、ached 狀態(tài),此時對user所進行的任何修改, /將不會對數(shù)據(jù)庫有任何影響. 特征: 游離態(tài)是由持久態(tài)實體對象轉(zhuǎn)變而來的.游離態(tài)實體不再與session對象相關(guān)聯(lián).游離態(tài)實體對象與數(shù)據(jù)庫中的記錄沒有直接聯(lián)系,對其所做的任何修改將不會影響到到數(shù)據(jù)庫中的數(shù)據(jù).游離態(tài)實體對象在數(shù)據(jù)庫有相對應的數(shù)據(jù)記錄,如果沒有被其他事務刪除. 掌握要點ssh的環(huán)境搭建和基本配置。1. 搭建簡單的struts2 web工程2. 添加spring2.0支持,整合spring2.03. 添加hibernate3.1支持,整合hibernate3.11.1 任務目標 搭建ssh開發(fā)環(huán)境,熟悉其配置過程,從而完成對客商信

29、息編碼系統(tǒng)的開發(fā)和設計。1.2任務描述配置ssh開發(fā)環(huán)境首先要了解ssh框架的結(jié)構(gòu)。根據(jù)相應的要求制作各層。ssh技術(shù)是典型的j2ee三層結(jié)構(gòu),分為表現(xiàn)層,中間層(業(yè)務邏輯層)和數(shù)據(jù)服務層。三層體系將業(yè)務規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。表現(xiàn)層是傳統(tǒng)的jsp技術(shù)。struts負責控制業(yè)務邏輯層與表現(xiàn)層的交互,調(diào)用業(yè)務邏輯層,并將業(yè)務數(shù)據(jù)返回給表現(xiàn)層作組織表現(xiàn)。service層(就是業(yè)務邏輯層),負責實現(xiàn)業(yè)務邏輯。業(yè)務邏輯層以dao層為基礎,通過對dao組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務邏輯。da

30、o層負責與持久化對象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操作。po,持久化對象。通過實體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,很方便的實現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫。1.3 任務實施在myeclipse中可以增加對struts2.0, spring2.0, hibernate3.1的支持,具體如下:1). 搭建簡單的struts2 web工程(1) 下載和安裝struts2框架在此下載最新的struts-2.0.14-all完整包,里面包括apps(示例)、docs(文檔)、lib(核心類庫及struts2第三方插件類庫)、src(源代碼)。(2) 創(chuàng)建web工程,添加jar包將下載資源

31、包中l(wèi)ib下的struts2-core-2.0.14.jar、xwork-2.0.7.jar和ognl-2.6.11.jar(三個為必須jar包)添加,就可以開發(fā)應用,但是會有錯誤消息。添加commons-logging-1.0.4.jar和freemarker-2.3.8.jar就不會報錯。(3) 編輯web.xml文件,配置struts2的核心filter 文件名稱web.xml文件描述該文件為系統(tǒng)登記文件實現(xiàn)代碼12345678910111213141516171819202122232425262728293031323334 org.springframework.web.conte

32、xt.contextloaderlistenerstruts2org.apache.struts2.dispatcher.filterdispatcherstruts2/*login.jspbasic 代碼貼士:在代碼第1行中將pageencoding的屬性設定為utf-8,為了能夠正確表示字體,防止出現(xiàn)亂碼情況。在代碼第8到第13行中為監(jiān)聽器配置。在代碼第15到第24行中過濾器配置:將一個名字與一個實現(xiàn)javaxs.servlet.filter接口的類相關(guān)聯(lián)。在代碼第26到第31行為指定文件頁配置。 2). 添加spring2.0支持(1) 右鍵工程名,選擇myeclipse-add spr

33、ing capabilities打開添加spring支持配置頁面,如下圖:圖1-5 myeclipse配置spring頁面2) 打開如下配置頁面,進行配置:圖1-6 myeclipse配置spring頁面選擇spring2.0,勾取spring2.0支持包,要選擇spring2.0 orm/dao/hibernate3 libraries ,選擇copy checked libraty contents to project folder(tlds always copied) ,并將其拷貝到路徑為/webroot/web-inf/lib,然后選擇next,進行下一步設置。3) 進入appli

34、cation生成頁面,如下圖:圖1-7 myeclipse配置spring頁面選擇new,folder選擇工程下的webroot/web-inf, file為applicationcontext.xml,最后點擊finish完成對spring2.0的添加。3.添加hibernate3.1支持1)添加hibernate3.1支持,右鍵工程-myeclipse-add hibernate capabilities,如下圖:圖1-8 myeclipse配置hibernate圖1-9 myeclipse配置hibernate設置數(shù)據(jù)源,填寫bean id 為datasource,選擇jdbc,db d

35、river為設置好的mysql driver,如下圖,然選擇next圖1-10 myeclipse配置hibernate取消創(chuàng)建sessinfactory class,不勾取,因為前面已經(jīng)將sessionfactory交給了spring來產(chǎn)生,如下圖配置,然后finishi完成hibernate支持的添加。圖1-11 myeclipse配置hibernate完成后applicationcontext.xml中已經(jīng)添加了數(shù)據(jù)源和sessionfactory的配置,如下圖:圖1-12 myeclipse配置hibernate配置數(shù)據(jù)源在myeclipse右上角選擇myeclipse databas

36、e explorer,打開數(shù)據(jù)庫管理視圖。圖1-13 配置數(shù)據(jù)源在左側(cè)的db browser點擊右鍵,選擇new,打開database driver對話框。圖 1-14 配置數(shù)據(jù)源在database driver對話框中按照如下配置選擇數(shù)據(jù)庫驅(qū)動。首先選擇driver template,在這里我們選擇mysql。driver name是以后配置時使用的驅(qū)動名字,用以區(qū)分驅(qū)動,這里使用mysql即可。然后根據(jù)實際情況填寫url,user name和password。點擊add jars添加數(shù)據(jù)庫驅(qū)動文件。為方便配置,可以選擇save password保存密碼。配置完畢后finish即可。圖 1-

37、15配置數(shù)據(jù)源此時項目的目錄結(jié)構(gòu)如下所示。其中的users.java是myeclipse生成的使用面向?qū)ο蟮膉ava語言對數(shù)據(jù)庫表格進行的抽象,users.hbm.xml是將數(shù)據(jù)庫表格中的字段和pojo類的屬性進行映射的定義。圖 1-16配置數(shù)據(jù)源建action包,將action類寫入。建立一個dao包,為了將實現(xiàn)與接口進行解耦,建議在dao包下面添加接口,然后建立dao.impl包,將實際的dao類放在這里。dao類是直接與數(shù)據(jù)庫打交道的類,為了對業(yè)務邏輯進行封裝,我們將業(yè)務全部寫在service類里面,和dao一樣,我們先建立service包,里面添加業(yè)務接口,具體的實現(xiàn)放在service

38、.impl里面。工程整體結(jié)構(gòu)如下圖圖1-17工程整體結(jié)構(gòu)注:struts.xml在src文件夾下,applicationcontext.xml在web-inf文件夾下代碼文件名稱applicationcontext.xml文件描述該文件為系統(tǒng)登記文件實現(xiàn)代碼123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論