




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、華南理工大學(xué)廣州學(xué)院2015-2016學(xué)年度第一學(xué)期 課程名稱: 數(shù)據(jù)庫課程設(shè)計(jì) 項(xiàng)目題目:基于 Java EE的宿舍信息系統(tǒng)管理子模塊專業(yè)班級: 軟件工程4班 年級: 2013級 姓名: 學(xué)號: 201330098 13目錄一、 概述1. 開發(fā)環(huán)境及安裝配置 32. 項(xiàng)目需求分析 4二、 程序概要設(shè)計(jì)1. 程序功能模塊 42. 程序流程 53. 程序文件結(jié)構(gòu)分析 64. 數(shù)據(jù)庫設(shè)計(jì) 7三、 程序詳細(xì)設(shè)計(jì)1. 關(guān)鍵代碼分析 72. 設(shè)計(jì)疑難問題解析 9四、 程序發(fā)布和測試 10五、 程序優(yōu)點(diǎn)和不足 12六、 參考目錄 13一、 概述1、開發(fā)環(huán)境 開發(fā)環(huán)境:wi
2、ndows 8.1作為開發(fā)平臺,用Struts2和Hibernate結(jié)構(gòu)整合開發(fā)硬件配置:操作系統(tǒng) Microsoft Windows 8.1 (64位/Service Pack 1)CPU (英特爾)Intel(R) Core(TM) i5-4278U CPU 2.60GHz(2601 MHz)主板 蘋果 Mac-189A3D4F975D5FFC內(nèi)存 8.00 GB ( 1600 MHz)主硬盤 250 GB ( S1K4NYBF784144 已使用時(shí)間: 431小時(shí))顯卡 Intel(R) Iris(TM) Graphics 5100 (2112 MB)顯示器 蘋果 Color LCD 3
3、2位真彩色 60Hz聲卡 Cirrus Logic CS4208 (AB 93)網(wǎng)卡 Broadcom 802.11ac Network Adapter開發(fā)服務(wù)器:Tomcat開發(fā)工具:MyEclipse數(shù)據(jù)庫管理系統(tǒng):Microsoft SQL Server 2008 安裝配置、安裝JDK,配置系統(tǒng)變量path和classpath,用于Java標(biāo)準(zhǔn)編程。、安裝tomcat,Web服務(wù)器用于調(diào)試運(yùn)行web項(xiàng)目。、安裝MyEclipse,集成開發(fā)環(huán)境,用于編碼和調(diào)試項(xiàng)目。、在MyEclipse中進(jìn)行JDK和tomcat的配置。Hibernate和Struts2的整合流程1) 建立數(shù)據(jù)庫和數(shù)據(jù)表2
4、) 在Myeclipse的database explorer中創(chuàng)建SQL Server數(shù)據(jù)庫連接3) 創(chuàng)建Java web項(xiàng)目4) 右擊項(xiàng)目文件夾,在Myeclipse右鍵菜單中選擇“添加Hibernate開發(fā)能力”,先選擇所需要的類庫,然后單擊next,創(chuàng)建Hibernate配置文件Hibernate.cfg.xml放在src文件夾下,接著選擇數(shù)據(jù)庫連接,接著創(chuàng)建SessionFactory類,放在一個(gè)用戶自定義的包中。此步驟添加了Hibernate類庫,創(chuàng)建了一個(gè)配置文件和一個(gè)java類。5) 打開步驟2)中配置好的數(shù)據(jù)庫連接,找到要操作的數(shù)據(jù)表,右鍵選擇“Hibernate Revers
5、e Engineering”(Hibernate逆向工程),按照向?qū)珊蛿?shù)據(jù)表對應(yīng)的Java類POJO以及對應(yīng)的映射文件,Java類默認(rèn)放在model包中,映射文件和Java類在同一個(gè)包中,映射文件的路徑信息被加入到Hibernate.cfg.xml配置文件。6) 創(chuàng)建Dao類,使用Hibernate功能去訪問數(shù)據(jù)庫。7) 為項(xiàng)目導(dǎo)入struts2的核心類庫8) 在web.xml文件中配置過濾器FilterDispatcher9) 編寫JSP頁面10) 編寫Action類,重載類中的excute方法,在Action的方法中調(diào)用Dao類的方法訪問數(shù)據(jù)庫。11) 新建struts.xml文件,配
6、置action及其result信息。12) 把項(xiàng)目發(fā)布到服務(wù)器,啟動tomcat,運(yùn)行調(diào)試2、項(xiàng)目的需求分析學(xué)生住在宿舍樓中,每棟宿舍樓都會有若干名宿舍管理員負(fù)責(zé)本宿舍樓的日常管理。在管理宿舍時(shí)都會遇到以下需求:一、學(xué)生的基本信息:入校時(shí),每位同學(xué)都有唯一的學(xué)號,并被分配到指定的宿舍樓和指定的宿舍,也會有一個(gè)宿舍號,其入校時(shí)間就是他的入住時(shí)間。另外,為了管理上的方便,同一院系的學(xué)生的宿舍一般在一起,相應(yīng)地會有其所在的院系名稱。二、宿舍的基本信息:學(xué)校宿舍樓眾多,每棟宿舍樓的每間宿舍都有唯一的宿舍號。三、宿舍信息管理:除了每棟宿舍的宿舍管理員外學(xué)校生活注意負(fù)責(zé)部門則要對宿舍樓和宿舍號進(jìn)行分配管理
7、,方便信息的查詢。四、宿舍財(cái)產(chǎn)的基本信息:每個(gè)宿舍的財(cái)產(chǎn)屬于學(xué)校,比如電燈,床鋪,柜子,桌椅等,為了對不同的財(cái)產(chǎn)進(jìn)行區(qū)分,可以為每種財(cái)產(chǎn)分配不同的財(cái)產(chǎn)號。這樣有利于財(cái)產(chǎn)的報(bào)修和管理。五、違紀(jì)的基本信息:宿舍樓在指定的時(shí)間關(guān)門,若有同學(xué)晚于關(guān)門時(shí)間會宿舍,需通知宿舍樓管理員,同時(shí)應(yīng)登記晚歸學(xué)生姓名,宿舍號和晚歸原因,以利于學(xué)校的管理。在這個(gè)需求下我設(shè)計(jì)了基于 Java EE的宿舍信息系統(tǒng)管理子模塊,用于記錄學(xué)生信息,宿舍樓信息以及備注信息,方便學(xué)校的宿舍管理。二、 程序概要設(shè)計(jì)1.程序功能模塊1)超級管理員模塊:主要實(shí)現(xiàn)系統(tǒng)中宿舍樓號的添加和查詢,每棟宿舍樓中宿舍號的添加、修改、查詢和刪除,并且
8、擁有普通管理員的所有功能,可以對學(xué)生的宿舍信息進(jìn)行添加、修改、查詢和刪除,包括學(xué)號、姓名、樓號、宿舍號、專業(yè)以及備注信息,備注信息用于登記學(xué)生宿舍的財(cái)物情況以及違規(guī)情況。超級管理員需要賬號登陸,已設(shè)定賬號為:superuser 密碼為:superuser,不能另外進(jìn)行超級管理員賬號的注冊。2)普通管理員模塊:可以對學(xué)生的宿舍信息進(jìn)行添加、修改、查詢和刪除,包括學(xué)號、姓名、樓號、宿舍號、專業(yè)以及備注信息,備注信息用于登記學(xué)生宿舍的財(cái)物情況以及違規(guī)情況。超級管理員需要賬號登陸,已設(shè)定賬號為: user 密碼為: user,普通管理員的賬號可以進(jìn)行注冊登記。3)普通用戶模塊:普通用戶(游客)無需進(jìn)行
9、登陸既可以進(jìn)入系統(tǒng),但只能進(jìn)行學(xué)生宿舍信息的查詢2.程序流程宿舍管理系統(tǒng)直接進(jìn)入登陸登陸,注冊學(xué)號姓名樓號宿舍號專業(yè)備注學(xué)號姓名樓號宿舍號專業(yè)備注學(xué)號姓名樓號宿舍號專業(yè)備注添加,刪除,修改,查詢添加,修改,查詢添加,查詢樓號樓號宿舍號添加,刪除,修改,查詢查詢學(xué)生信息學(xué)生信息學(xué)生信息宿舍信息宿舍樓信息普通管理員普通用戶(游客)超級管理員3.程序文件結(jié)構(gòu)分析Org.action包里包含了Struts2框架的Action類,用于處理事務(wù)。還包含了Login(登陸)和Register(注冊)兩個(gè)Action類的數(shù)據(jù)驗(yàn)證校驗(yàn)器(最后兩個(gè))。Org.dao包里面包含了數(shù)據(jù)庫的Dao類,用于處理數(shù)據(jù)庫的增
10、刪改查事務(wù)。Org.model包用來存放與數(shù)據(jù)庫表對應(yīng)的Java類,即POJO類。還有數(shù)據(jù)庫表的映射文件。org.til包用于存放HibernateSessionFactory工廠類。hibernate和struts2框架的配置文件WebRoot文件夾中存放了所有的jsp頁面文件,其中的image文件夾用于存放圖片文件。4.數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫中一共有五個(gè)表,Lh表用于存放宿舍樓號Normaluser表用于存放普通管理員的賬號密碼信息SSh表用于存放宿舍號信息Student表用于存放學(xué)生信息Superuser表用于存放超級管理員的賬號密碼信息Lh表LhNormaluser表UidUsernameP
11、asswordSSh表IdLhSShStudent表IdXhXmLhSshZyBZSuperuser表UidUsernamePasswordLh表:lh(樓號)(主鍵)Normaluser表:uid(自增主鍵),username(賬號),password(密碼)Ssh表:id(自增主鍵),Lh(樓號),Ssh(宿舍號)Student表:id(自增主鍵),Xh(學(xué)號),Xm(姓名),Lh(樓號),SSh(宿舍號),Zy(專業(yè)),Bz(備注)。Superuser表:uid(自增主鍵),username(賬號),password(密碼)三、程序詳細(xì)設(shè)計(jì)1.關(guān)鍵代碼分析(1)登陸方法:LoginAct
12、ion的execute自動執(zhí)行方法public String execute() throws Exception if(power.equals("1")Map session = (Map)ActionContext.getContext().getSession();Normaluser shi = NormaluserDao.checkDlb(username,password);if(shi=null)return "error"elsesession.put("user", shi);return "user&q
13、uot;Power是從登陸界面的單選按鈕獲得的數(shù)據(jù)變量,當(dāng)值為1時(shí),即是普通管理員按鈕被選中,利用if語句判定后調(diào)用NormaluserDao類中的checkDlb方法,把獲得的賬號密碼傳過去進(jìn)行判定,遍歷普通用戶Normaluser表后如果返回值不為空即登陸驗(yàn)證通過返回“user”,由Sturts.xml跳轉(zhuǎn)到普通管理員界面,超級管理員的power值為2,執(zhí)行方法相同,普通用戶直接點(diǎn)擊我是游客按鈕即可直接登陸到游客界面。(2)添加信息方法:以AddAction類為例public String execute() throws Exception trySession session=org.
14、util.HibernateSessionFactory.getSession();Transaction ts=session.beginTransaction();session.save(xs);mit();HibernateSessionFactory.closeSession();return "success"catch(Exception e)e.printStackTrace();return "error"創(chuàng)建Student類的xs對象,利用get、set方法從添加學(xué)生信息界面獲取xs對象的值,利用hibernate自動處理添加事務(wù),調(diào)
15、用session.save方法存儲。(3)刪除信息方法:try Session session=org.util.HibernateSessionFactory.getSession();Transaction ts=session.beginTransaction();Query query=session.createQuery("from Student where xh=?");query.setParameter(0,xh);List list=query.list();if(list!=null&&list.size()!=0)Student x
16、s1=(Student)list.get(0);session.delete(xs1);mit();return true;HibernateSessionFactory.closeSession();Xh為該方法的形參,調(diào)用hql語句利用學(xué)號查找學(xué)生信息表中的相關(guān)信息,遍歷后判定時(shí)候查找到,利用hibernate自動處理刪除事務(wù),調(diào)用session.delete方法刪除。(4)修改信息方法:NormaluserDao xsb=new NormaluserDao();Student stu=new Student();Map session=(Map)ActionContext.getCont
17、ext().getSession();Student a=(Student)session.get("xgxs");a.setXh(xsxh);a.setXm(xsxm);a.setLh(xslh);a.setSsh(xsssh);a.setZy(xszy);a.setBz(xsbz);trySession session1=org.util.HibernateSessionFactory.getSession();Transaction ts=session1.beginTransaction();session1.update(a);mit();HibernateSes
18、sionFactory.closeSession();return "success"利用get、set方法取得頁面的修改后的學(xué)生信息然后利用Student 對象a的set方法重寫信息,a對象是由點(diǎn)擊修改頁面時(shí)已經(jīng)存儲到session中的Student類xgxs對象賦值,即是先從點(diǎn)擊修改的頁面獲得該項(xiàng)信息的對象,然后放到session中,再到這里調(diào)用出存儲到a對象中,然后利用hibernate自動處理更改事務(wù),調(diào)用session.update方法修改。(5)查詢信息方法:public static Student getOneXs(String xh) trySession
19、 session=HibernateSessionFactory.getSession();Transaction ts=session.beginTransaction();Query query=session.createQuery("from Student where xh=?");query.setParameter(0, xh);query.setMaxResults(1);Student xs=(Student) query.uniqueResult();mit();session.clear();return xs;利用xh對Student進(jìn)行hql語句查
20、詢,遍歷后把得到的對象存放到Student對象xs中,返回xs參數(shù),在jsp頁面顯示出xs參數(shù)的信息。2.設(shè)計(jì)疑難問題解析(1)設(shè)計(jì)到修改信息部分時(shí),程序經(jīng)常出錯(cuò),hibernate返回錯(cuò)誤信息沒有獲得主鍵的修改值,我的數(shù)據(jù)庫主鍵是設(shè)置了主鍵自增的,就很奇怪為什么還要修改主鍵,后來經(jīng)過上網(wǎng)研究,發(fā)現(xiàn)是自己在設(shè)置主鍵生成策略時(shí)忘記把映射文件設(shè)置為identity類型,這樣程序會讓數(shù)據(jù)庫進(jìn)行主鍵自增,之前一直是默認(rèn)的設(shè)置了assigned類型由用戶自己設(shè)置。(2)還是設(shè)計(jì)修改信息部分時(shí),經(jīng)過前一步修改后數(shù)據(jù)庫已經(jīng)沒有出錯(cuò),但是我在調(diào)用update方法自動處理修改事務(wù)時(shí)還是出錯(cuò),原因是因?yàn)槲乙恢卑呀?/p>
21、收到的信息存到一個(gè)新的對象中,然后進(jìn)行update操作,數(shù)據(jù)庫里面沒有這個(gè)記錄所以一直報(bào)錯(cuò),后來經(jīng)過重復(fù)查看代碼發(fā)現(xiàn)我應(yīng)該先把要修改的那一項(xiàng)存儲起來,再經(jīng)過賦值然后再放進(jìn)update方法中進(jìn)行修改。(3)登錄界面的設(shè)計(jì),在判定單選按鈕信息中思考了一段時(shí)間,后來經(jīng)過考慮決定把不同的登錄用戶權(quán)限登錄到不同的界面。原本的設(shè)計(jì)是打算在同一個(gè)界面完成。(4)在添加宿舍號信息時(shí)要使用struts2的下拉列表來顯示數(shù)據(jù)庫中已經(jīng)存在的樓號,這一部分花了很多時(shí)間,因?yàn)橐婚_始不知道怎樣把動態(tài)的數(shù)據(jù)庫數(shù)據(jù)存放到struts2下拉列表中,后來經(jīng)過上網(wǎng)進(jìn)行查詢,利用HashMap map 對象在jsp頁面上存放查找到的
22、樓號信息,然后動態(tài)遍歷到下拉標(biāo)簽中,雖然已經(jīng)實(shí)現(xiàn),但是還是不是很了解。四、 程序發(fā)布和測試登陸界面:注冊界面:注冊成功會彈框顯示校驗(yàn)器:分別判定用戶和密碼是否為空,否則不能登陸普通管理員界面:分為三個(gè)部分左下邊控制調(diào)用那個(gè)功能右下邊負(fù)責(zé)顯示界面查看所有學(xué)生信息界面:可以直接點(diǎn)擊修改或者刪除連接對指定的信息行進(jìn)行相關(guān)操作添加學(xué)生信息界面添加成功會有彈框提示查詢學(xué)生信息界面可分別對學(xué)號和姓名進(jìn)行查詢查詢成功界面查詢成功后可以直接對該信息行做修改或者刪除比較方便超級管理員界面添加宿舍樓號信息界面添加對應(yīng)樓號的宿舍號信息界面上面提到的動態(tài)分配下拉列表顯示宿舍信息界面修改或者刪除都有彈框提示而且普通用戶(游客)的登錄界面可以進(jìn)行查詢操作,相對的修改刪除連接已經(jīng)刪除五、程序優(yōu)點(diǎn)和不足優(yōu)點(diǎn):(1)整個(gè)系統(tǒng)做相關(guān)操作或者改動都會有彈框提示或者校驗(yàn)器提示,例如登錄失敗時(shí)會提示你這樣的提示比較人性化,對于不了解系統(tǒng)的用戶會有比較強(qiáng)的適應(yīng)性。(2)系統(tǒng)特意把各個(gè)登錄界面都放在同一個(gè)界面顯示,而不是每次都跳轉(zhuǎn)頁面,減少了等待時(shí)間和使用戶不會感到經(jīng)常跳轉(zhuǎn)而厭煩。(3)系統(tǒng)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中介留學(xué)合同范本
- 個(gè)人創(chuàng)業(yè)合同范本
- 勞務(wù)合同范例文件
- 廚房排煙整改合同范本
- 原料加工合同范本
- 單位車輛出售合同范本
- 合伙創(chuàng)業(yè)交租合同范本
- 合資房協(xié)議合同范本
- 衛(wèi)浴工地供貨合同范例
- 合作合同范本代加工
- 果實(shí)酚類和揮發(fā)性物質(zhì)含量特征及其與果實(shí)品質(zhì)關(guān)系的研究
- 2023年東華高級中學(xué)中考自招數(shù)學(xué)復(fù)習(xí)題及答案解析
- 結(jié)果比過程重要辯論賽
- JTG C10-2007 公路勘測規(guī)范
- 工程結(jié)算審核項(xiàng)目投標(biāo)技術(shù)方案造價(jià)咨詢服務(wù)方案
- 高中英語2024屆新高考詞匯轉(zhuǎn)換匯總(共六組)
- 2024年廣州市高三一模高考英語試卷試題答案詳解(含作文范文)
- 《養(yǎng)老護(hù)理員》-課件:職業(yè)安全和個(gè)人防護(hù)知識
- GB 19644-2024食品安全國家標(biāo)準(zhǔn)乳粉和調(diào)制乳粉
- TCASWSS 025-2024 老年大學(xué)課程設(shè)置規(guī)范
- 2024年河南省專升本考試管理學(xué)測試題含解析
評論
0/150
提交評論