版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于ssh架構(gòu)的學(xué)生成績管理系統(tǒng)(1) 整合Struts2、Spring和Hibernate框架(2) 實(shí)現(xiàn)“登錄”功能(3) 實(shí)現(xiàn)“學(xué)生信息管理”功能(4) 實(shí)現(xiàn)“學(xué)生成績管理”功能(5) 實(shí)現(xiàn)分頁功能掌握Struts2的開發(fā)步驟掌握Hibernate的開發(fā)步驟掌握Spring的開發(fā)步驟,理解依賴注入、AOP、事務(wù)管理等掌握Struts2、Spring和Hibernate框架的整合掌握分頁技術(shù)1、 建庫建表2、 利用分層思想,建package3、 添加Spring開發(fā)能力4、 添加Hibernate開發(fā)能力5、 生成Hibernate所需的POJO類和映射文件6、 開發(fā)DAO層(1) 新建D
2、AO層接口。(2) 新建DAO層實(shí)現(xiàn)類(該類要實(shí)現(xiàn)DAO層接口,繼承HibernateDaoSupport類)。(3) 在Spring配置文件中增加該DAO層實(shí)現(xiàn)類的定義,并需要依賴注入一個SessionFactory bean的引用。7、 開發(fā)Service層(1) 新建Service層接口。(2) 新建Service層實(shí)現(xiàn)類,該類中需要聲明所調(diào)用DAO層接口,并生其setter方法。(3) 在Spring配置文件中增加該Service層實(shí)現(xiàn)類的定義,并需要依賴注入DAO層的bean。8、 實(shí)現(xiàn)WEB層(1) 在web.xml中增加struts2的過濾器和Spring的監(jiān)聽器。(2) 增加S
3、pring和Struts2的整合文件perties。(3) 新建所需的jsp文件。(4) 新建Action類,該類要繼承ActionSupport,同時該類要依賴注入Service的bean(聲明+setter方法)。(5) 在Spring配置文件中增加該Action類的定義,并注入Service層的bean。(6) 在struts.xml中增加該Action的定義,其中class的屬性是在Spring中定義的該Action bean的id。9、部署運(yùn)行實(shí)驗(yàn)步驟:1、 建庫、建表建立數(shù)據(jù)庫xscj,建立xsb、dlb、zyb、kcb、cjb等。學(xué)生信息表:xsb列名描述數(shù)據(jù)
4、類型可空默認(rèn)值說明XH學(xué)號Char(6)無主鍵XM姓名Char(8)無XB性別bit無1:男,0:女CSSJ出生時間datetime無ZY_ID專業(yè)IDint無ZXF總學(xué)分int無BZ備注Varchar(200)無ZP照片mediumblob無登錄表:dlb列名描述數(shù)據(jù)類型可空默認(rèn)值說明id標(biāo)識int自增1主鍵,自增xh登錄號char(6)無外鍵,xsb中xhkl口令char(20)無專業(yè)表:zyb列名描述數(shù)據(jù)類型可空默認(rèn)值說明idIDint自增1主鍵zym專業(yè)名char(12)無rs人數(shù)int0fdy輔導(dǎo)員char(8)無課程表:kcb列名描述數(shù)據(jù)類型可空默認(rèn)值說明kch課程號Char(3)
5、否無主鍵kcm課程名Char(12)是無kxxq開課學(xué)期smallint是無1-8xs學(xué)時int是0xf學(xué)分int是0連接表:xs_kcb列名描述數(shù)據(jù)類型可空默認(rèn)值說明xh學(xué)號char(6)主鍵kch課程號char(3)主鍵成績表:cjb列名描述數(shù)據(jù)類型可空默認(rèn)值說明Xh學(xué)號Char(6)否無主鍵Kch課程號Char(3)否無主鍵Cj成績int是0xf學(xué)分int是02、 設(shè)計系統(tǒng)架構(gòu)利用分層架構(gòu)模式,設(shè)計系統(tǒng)架構(gòu),系統(tǒng)可分為表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層。如下圖所示:建立相應(yīng)package。3、 添加Spring開發(fā)能力(1) 定義User Library(2) 增加Spring開發(fā)能力(添加
6、jar包使用User Library,新建applicationContext.xml)注:可以不增加User Library,直接把需要的jar包拷貝到classpath下。4、 實(shí)現(xiàn)Hibernate持久層(1) 添加Hibernate開發(fā)能力添加jar包:如果第一步中已增加,此步可以省略。注意:需要把Hibernate交由Spring來管理,其中包括在Spring中配置“dataSource”和“sessionFactory”(2) 通過MyEclipse中Hibernate 反向工程,分別生成表對應(yīng)的POJO類及相應(yīng)的映射文件。注意:所有的POJO類和映射文件(*.hbm.xml)放在
7、org.model這個package下。難點(diǎn)1:xsb(學(xué)生表)的映射文件中需要設(shè)置和專業(yè)的多對一關(guān)系,參考代碼如下: 難點(diǎn)2:成績表(cjb)中需要配置復(fù)合主鍵,因?yàn)槌煽儽碇械闹麈I是由xh和kch組成,參考代碼如下: 對應(yīng)的POJO類由復(fù)合主鍵的POJO類和成績表的POJO類組成,參考代碼如下:CjbId.javapackage org.model;public class CjbId implements java.io.Serializable private String xh;private String kch;public CjbId() public CjbId(String
8、xh, String kch) this.xh = xh;this.kch = kch;public String getXh() return this.xh;public void setXh(String xh) this.xh = xh;public String getKch() return this.kch;public void setKch(String kch) this.kch = kch;Cjb.javapackage org.model;public class Cjb implements java.io.Serializable private CjbId id;
9、private Integer cj;private Integer xf;public Cjb() public Cjb(CjbId id) this.id = id;public Cjb(CjbId id, Integer cj, Integer xf) this.id = id;this.cj = cj;this.xf = xf;public CjbId getId() return this.id;public void setId(CjbId id) this.id = id;public Integer getCj() return this.cj;public void setC
10、j(Integer cj) this.cj = cj;public Integer getXf() return this.xf;public void setXf(Integer xf) this.xf = xf;重點(diǎn):所有的映射文件需要在Spring配置文件中注冊,參考applicationContext.xml如下:org.hibernate.dialect.MySQLDialect org/model/Dlb.hbm.xmlorg/model/Xsb.hbm.xmlorg/model/Kcb.hbm.xmlorg/model/Zyb.hbm.xmlorg/model/Cjb.hbm.x
11、ml5、 實(shí)現(xiàn)DAO所有DAO層的實(shí)現(xiàn)類需要繼承HibernateDaoSupport類,參考代碼如下:package org.dao.imp;import java.util.List;import org.dao.DlDao;import org.model.Dlb;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class DlDaoImp extends HibernateDaoSupport implements DlDaopublic boolean existXh(Strin
12、g xh) List list=getHibernateTemplate().find(from Dlb where xh=?,xh);if(list.size()0)return true;else return false;public Dlb find(String xh, String kl) String str=xh,kl;List list=getHibernateTemplate().find(from Dlb where xh=? and kl=?,str);if(list.size()0)return (Dlb) list.get(0);elsereturn null;pu
13、blic void save(Dlb user) getHibernateTemplate().save(user);注意:所有DAO層的實(shí)現(xiàn)類都需要在Spring配置,并且必須獲得一個SessionFactory的引用,然后才能完成持久化訪問。換句話說,DAO的實(shí)現(xiàn)類都交由Spring容器的Bean來管理。參考Spring中的配置DAO的部分代碼如下“6、 實(shí)現(xiàn)業(yè)務(wù)邏輯層(Service層)主要實(shí)現(xiàn)對DAO層的調(diào)用。難點(diǎn)1:依賴注入依賴注入首先要在需要注入的類中聲明一個變量(對象),同時生成該變量(對象)的setter方法。其次需要在Spring配置文件中設(shè)置需要注入的對象。例如,需要在登錄
14、的DlServiceManage類中注入DlDaoImp實(shí)例化后的對象,步驟有二:首先,在DlServiceManage中聲明dlDao,同時生成dlDao的setter方法,參考代碼如下:package org.service.imp;import org.dao.DlDao;import org.model.Dlb;import org.service.DlService;public class DlServiceManage implements DlService/對DlDao進(jìn)行依賴注入private DlDao dlDao;public void setDlDao(DlDao d
15、lDao) this.dlDao = dlDao;public boolean existXh(String xh) return dlDao.existXh(xh);public Dlb find(String xh, String kl) return dlDao.find(xh, kl);public void save(Dlb user) dlDao.save(user);其次,在Spring的配置文件中進(jìn)行配置:7、 對業(yè)務(wù)邏輯增加事務(wù)管理采用BeanNameAutoProxyCreator,根據(jù)Bean Name自動生成事務(wù)代理的方式。參考代碼:PROPAGATION_REQUIR
16、EDPROPAGATION_REQUIREDxsServicekcServicecjServicezyServicetransactionInterceptor8、 實(shí)現(xiàn)表示層(Action類和JSP文件)(1) 配置web.xml,增加Struts2的過濾器和Spring的監(jiān)聽器,參考代碼如下: struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* org.springframework.web.context.ContextLoaderListener contextConfigLocation /WEB-INF
17、/classes/applicationContext.xml (2) 增加perties文件,配置Struts2的Action交由Spring來管理,參考代碼如下:struts.objectFactory=spring(3) 新建JSP頁面和Action類,并在struts.xml和applicationContext.xml中配置。以登錄為例:Action類參考代碼:package org.action;import java.util.Map;import org.model.Dlb;import org.service.DlService;import com.op
18、ensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class DlAction extends ActionSupportprivate DlService dlService;private Dlb dl;public Dlb getDl() return dl;public void setDl(Dlb dl) this.dl = dl;public DlService getDlService() return dlService;public void setDlService(DlService dlService) this.dlService = dlService;public String execute()throws ExceptionDlb user
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年安徽汽車職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試模擬試題帶答案解析
- 2026年福建師范大學(xué)協(xié)和學(xué)院單招職業(yè)技能考試備考題庫帶答案解析
- 2026年安徽城市管理職業(yè)學(xué)院單招職業(yè)技能考試參考題庫帶答案解析
- 2026年廣西自然資源職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考試題有答案解析
- 2026年博爾塔拉職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考題庫有答案解析
- 2026年湖北三峽職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試模擬試題有答案解析
- 2026年廣州城建職業(yè)學(xué)院單招綜合素質(zhì)筆試參考題庫帶答案解析
- 2026年海南體育職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試參考題庫帶答案解析
- 2026年河北軌道運(yùn)輸職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試模擬試題帶答案解析
- 2026年河北對外經(jīng)貿(mào)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性考試備考題庫帶答案解析
- DB11∕T 2398-2025 水利工程巡視檢查作業(yè)規(guī)范
- 2025秋國家開放大學(xué)《政府經(jīng)濟(jì)學(xué)》期末機(jī)考精準(zhǔn)復(fù)習(xí)題庫
- PCB設(shè)計規(guī)范-MD元器件封裝庫尺寸要求
- 番茄的營養(yǎng)及施肥
- 脫硫塔制作安裝施工技術(shù)方案
- 心身疾病護(hù)理科普要點(diǎn)
- 2025-2026學(xué)年遼寧省遼南協(xié)作校高二數(shù)學(xué)第一學(xué)期期末檢測試題含解析
- 校外輔導(dǎo)員培訓(xùn)
- 2025年大學(xué)《應(yīng)急管理-應(yīng)急管理法律法規(guī)》考試參考題庫及答案解析
- 2025年新版考監(jiān)控證的試題及答案
- 基于低軌衛(wèi)星數(shù)據(jù)的熱層大氣密度反演:方法、挑戰(zhàn)與應(yīng)用
評論
0/150
提交評論