總結(jié)一下這個項目
利用hibernate+struts2 框架完成后臺項目
準(zhǔn)備環(huán)境:
? ? Struts2.5 + hibernate4.2.4 + MySQL6.0
?功能:
1? ? 登錄注冊
2? 信息的增刪改查
?做法:
1 . 準(zhǔn)備jar包?
? ? ?hibernate-core包
? ? ?struts2-core包
? ? ?mysql驅(qū)動包?
? ? ?junit單元測試包
2 創(chuàng)建動態(tài)web項目?
3 導(dǎo)包?
? ? 通過Window 屬性下的java path添加相關(guān)包
? ? new 包后 add libraries 將包添加
? ? 在WEB-INF目錄下的lib中也導(dǎo)入相應(yīng)的包
4.配置相關(guān)的xml文件
? ?web.xml文件? ?配置過濾器
? ?strusts.xml文件 package為默認 (再添加<global-allowed-methods>regex:.*</global-allowed-methods>)
? ?hibernate.xml文件 配置property屬性
5. 創(chuàng)建實體類User和Students
? ? User(uid, username, password)
? ? Students(sid,sname,gender,birthday,address)
? ? 將屬性封裝,保留不帶參數(shù)的構(gòu)造方法,生成一個帶參數(shù)的構(gòu)造方法
? ? 注意,實體類Students中需要重寫toString方法?
6.將實體類的屬性映射到數(shù)據(jù)庫中
? ?在實體類的包下新建對應(yīng)的hbm.xml文件
? ?再配置hbm.xml的屬性?
? ?hibernate.cfg.xml中的mapping需要指定到兩個實體類的xml中
7.用戶登錄模塊
? 創(chuàng)建MyHibernateSessionFactory
? ? ?私有的構(gòu)造方法,保證單例模式
? ? ?公有的靜態(tài)方法來獲得工廠對象
? 設(shè)計用戶接口和實現(xiàn)類
? ? ? 用戶接口:用戶登錄方法,用戶注銷方法? ? ??
? ? ? 用戶實現(xiàn)類:重寫接口中的方法(try-catch-finally)? ? ? ?
? ? ? 用@test 來測試用戶的功能(junit)
? 設(shè)計Action父類
? ? ? 繼承ActionSupport 并且實現(xiàn)接口ServletRequestAware, ServletResponseAware, ServletContextAware
? ? ? 可以用web的內(nèi)置對象
? ? ??
? 設(shè)計用戶的Action類(繼承Action父類)
? ? ? ?在接受表單模型數(shù)據(jù)采用模型驅(qū)動接受表單數(shù)據(jù)(可以不用get,set封裝)
? ? ? ?注冊Struts2.xml
? 頁面的調(diào)用
? ? ? ?進去對應(yīng)的jsp頁面
? ? ? ?表單的提交的action用絕對路徑
? ? ? ?action="<%=path%>/users/Users_login.action"這要和功能的名字相同(UserAction下的login方法)
? ? ? ?用戶登錄驗證用validate方法 但是會對所有的action都驗證 可以通過在方法前加@SkiValidation來避免驗證
8.學(xué)生管理模塊
??
? ? ? ?設(shè)計學(xué)生業(yè)務(wù)邏輯接口(查詢所有學(xué)生資料,按id查詢,添加學(xué)生資料,刪除學(xué)生資料,修改學(xué)生資料)
? ?顯示學(xué)生資料
? ? ? ? 添加測試數(shù)據(jù)-->@test
? ? ? ? 設(shè)計學(xué)生業(yè)務(wù)邏輯接口(上面)
? ? ? ? 設(shè)計學(xué)生接口實現(xiàn)類(接口方法)(try - catch - finally)
? ? ? ? 設(shè)計學(xué)生Action動作(顯示學(xué)生資料)
? ? ? ? 注冊Struts2.xml
? ? ? ? 頁面調(diào)用
? ?刪除學(xué)生資料
? ? ? ? 設(shè)計學(xué)生業(yè)務(wù)邏輯接口(上面)
? ? ? ? 設(shè)計學(xué)生接口實現(xiàn)類(接口方法)(try - catch - finally)
? ? ? ? 設(shè)計學(xué)生Action動作(刪除學(xué)生資料)
? ? ? ? 注冊Struts2.xml
? ? ? ? 頁面調(diào)用
? ?學(xué)生主鍵的生成策略
? ? ? ? 設(shè)計學(xué)生實現(xiàn)類(生成主鍵策略)
? ? ? ? 找到數(shù)據(jù)庫最大的id 通過String轉(zhuǎn)int 給id遞增
? ? ? ? 再將int轉(zhuǎn)為String
? ? ? ? 設(shè)計Action動作
? ? ? ??
? ?添加學(xué)生資料
? ? ? ? 添加測試數(shù)據(jù)-->@test
? ? ? ? 設(shè)計學(xué)生業(yè)務(wù)邏輯接口(上面)
? ? ? ? 設(shè)計學(xué)生接口實現(xiàn)類(接口方法)(try - catch - finally)
? ? ? ? 設(shè)計學(xué)生Action動作(顯示學(xué)生資料)
? ? ? ? 注冊Struts2.xml
? ? ? ? 頁面調(diào)用
? ?修改學(xué)生資料
? ? ? ? 設(shè)計學(xué)生業(yè)務(wù)邏輯接口(上面)
? ? ? ? 設(shè)計學(xué)生接口實現(xiàn)類(接口方法)(try - catch - finally)
? ? ? ? 設(shè)計學(xué)生Action動作(顯示學(xué)生資料)
? ? ? ? 注冊Struts2.xml
? ? ? ? 頁面調(diào)用
最后大家一起加油???
項目地址:https://github.com/Eyym/Grace.git