ssh增刪改查流程_第1頁
ssh增刪改查流程_第2頁
ssh增刪改查流程_第3頁
ssh增刪改查流程_第4頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1) 拷貝下面所說的 .java 文件, 9 個 java 文件和相應(yīng)的包名,這些都是大果任封裝好的文件,可以直接用。2)dao 包里面有: Dao.java還有一個impl 包: IDao.javamanager包里面有:IBaseManager.javaIManager.javaIUserLoginManager.java還有一個impl 包: BaseManager.javastruts包里面有:ApplicationRperties還有一個 action包: BaseAction.javaIAction.javautils包里面有: MyActionProxy.

2、java ObjectUtils.java再把perties貼到 src 包下面。2)把a(bǔ)pplicationContext.xmlspring-form.tldspring.tldstruts-bean.tldstruts-config.xmlstruts-html.tldstruts-logic.tldstruts-nested.tldstruts-tiles.tldvalidator-rules.xmlweb.xml這些以前寫過的都可以貼過來, 你可以直接把這個項目里的都貼過去, 以后就直接在這里該代碼就行了。以上兩個步驟樣就是為了完成手寫SSH代碼3)新建一個pojo

3、 包:創(chuàng)建一個實(shí)體:先讓這個類實(shí)現(xiàn)序列接口如:然后寫相應(yīng)的字段:利用 get 和 set 方法生成每個字段的get() 和 set()。例如:4) 為了更夠生成所以為每一個字段寫出相應(yīng)的元數(shù)據(jù):1. 生成相應(yīng)的表:說明:利用hibernate生成UserLogin表。2. 字段id的映射,元數(shù)據(jù)要寫在get()方法前面:3.字段 username 的映射,元數(shù)據(jù)要寫在get ()方法前面:4.字段 password 的映射,元數(shù)據(jù)要寫在get ()方法前面:這樣這個UserLogin.java就完成了。5)右鍵項目名稱找到“屬性”選項:找到: XDoclet點(diǎn)擊這個出來相應(yīng)的界面:單擊按鈕,出

4、現(xiàn):選中:并單擊確定按鈕。出現(xiàn):點(diǎn)擊“確定”按鈕。6)右鍵項目名稱:執(zhí)行 Run XDocle 后只要出現(xiàn):就說明你的UserLogin類的創(chuàng)建成功了!7)新建一個UserLogin.jsp的頁面 ( 帶 Form 的那種頁面 ) :生成相應(yīng)的頁面后把屬性名稱,改成:給相應(yīng)的action后面添加一個名字,指明提交表單后走哪個.do 如:8)找到雙擊:在代碼標(biāo)簽中手寫action(就是上面表單提交后的那個/*.do):在找到標(biāo)簽,寫上form-bean 的代碼:說明:根據(jù)jsp 頁面提交的 /UserLogin.do找到 struts-config.xml里面的 path 屬性,根據(jù) name屬

5、性找到form-bean標(biāo)簽里的name 屬性,以及它對應(yīng)的type 屬性, type屬性寫的就是pojo 類中 UserLogin的全名 ( 包括包名和類名) ,Parameter 屬性是說明表單提交后要執(zhí)行check 方法,Validate=” false ”屬性說明不使用表單驗證框架,Scope=” request ”說明作用域是request ,Type=”屬性寫得就是你一會要創(chuàng)建的UserLoginAction的全名 ( 包括包名和類名) ,F(xiàn)orword 標(biāo)簽就是說明要是 check 成功后跳轉(zhuǎn) success.jspj ,失敗就跳轉(zhuǎn) failed.jsp 頁面。9)根據(jù)上面的xm

6、l 文件我們創(chuàng)建相應(yīng)的.java類和相應(yīng)的jsp 頁面。在 action包里面創(chuàng)建一個,在 Web-Root 下創(chuàng)建一個普通的頁面。在 manager 包里的 impl 包里面創(chuàng)建一個UserLoginManager.java文件:在 manager 包下創(chuàng)建一個接口IUserLoginManager.java文件:10)在 IUserLoginManager.java接口中寫:寫這個方法,因為我們要在業(yè)務(wù)邏輯層UserLoginManager.java中寫 check() 方法和hql語句進(jìn)行檢查用戶登錄名稱和密碼是否正確,而UserLoginManager.java是實(shí)現(xiàn)IUserLogi

7、nManager.java接口的所以就要在這里寫這個方法。還有一個原因是這是ssh 項目用到了Spring , Spring的優(yōu)點(diǎn)就是讓類去實(shí)現(xiàn)接口,體現(xiàn)了解耦合的好處。11)在業(yè)務(wù)邏輯層UserLoginManager.java中寫:讓這個類繼承BaseManager(泛型的BaseManager) 還要實(shí)現(xiàn)剛才寫的那個IuserLoginManager接口。在這個類里面寫這個 check() 方法是用來檢查用戶在登陸頁面的時候登錄名和登錄密碼是否與數(shù)據(jù)庫里的一致。具體方法如圖:說明:就是一個傳給數(shù)據(jù)庫的hql(hibernate查詢語言 ) 語句。就是一個對象數(shù)組,數(shù)組下標(biāo)從values0

8、表示的獲取用戶名的值0 開始,values1表示的是獲取用戶密碼的值注意:剛才的hql語句第一個是u.username= ?則values0就是獲取username的值;如果第一個是u.password= ?則 values0就是獲取password 的值。一定要注意位置寫反了就永遠(yuǎn)查不出來了。利用 dao 調(diào)用 findByHql()方法,里面參數(shù)對象數(shù)組 ) 。返回的結(jié)果用List listhql( 剛才的 Stringhql)來接 ( 泛型版本的 ) 。和 values(剛才的就是如果list不為空而且里面有相應(yīng)的數(shù)據(jù)( 也就是list的大小 0) 就說明查詢成功返回success否則就

9、返回failed12)在中寫代碼:讓此類繼承BaseAction,再把IUserLoginManager接口作為字段生成set方法,再添加check方法 (添加未實(shí)現(xiàn)方法還要改名為check方法 )。具體代碼如下圖:說明:把 IUserLoginManager接口作為字段( 這是一種設(shè)計模式叫做簡單工廠。)在 check() 方法中:先實(shí)例化 UserLogin ,利用 BeanUtils的 copyProperties(實(shí)例 userlogin,ActionForm的 arg1) 方法 , 就是把 ActionForm 的實(shí)例 arg1 得到的實(shí)體 ( 從頁面得到的用戶輸入的用戶名和密碼 )

10、 整個拷貝給實(shí)例 userlogin 。返 回 ActionMapping 的 實(shí) 例 arg0 的 findForward( 接 口 的 實(shí) 例 .check( 實(shí) 例 userlogin) 方法。13)找到修改代碼:1.寫上自己寫的映射文件名稱和路徑。2. 檢查相應(yīng)的包名類名和自己的項目中的包名類名是否一致,如果一致就不用修改。3.把寫的 UserLoginManager注入到 Spring里面去。4.把 UserLoginAction 注入到 Spring 里面去。14)在中寫一個鏈接說明:登陸成功后進(jìn)入success.jsp會顯示相應(yīng)的鏈接如果登錄失敗就會顯示404 錯誤 /faile

11、d.do15)在 manager 包里面創(chuàng)建一個test包在創(chuàng)建一個帶有main() 方法的 test類:寫這個測試類就是為了利用for循環(huán)在表里插入相應(yīng)的數(shù)據(jù)i 值是可以變的,在SqlServer2005 中光新建一個數(shù)據(jù)庫sshdenglu 就行了,它可以生成 UserLogin 表里面還有循環(huán)插入的數(shù)據(jù)。注意:在中數(shù)據(jù)庫的名稱和你新建數(shù)據(jù)庫的名稱一樣就行了。寫如下代碼:說明:因為 在中對于實(shí)體類pojo/UserLogin.hbm.xml的注入,所以用BeanFactory(Bean工廠 ) 利用 new 一個 xml 文件并把找到的spring的 xml 文件放進(jìn)新new的 xml中去

12、,這樣就可以讓測試類找到注入的相關(guān)東西。不會解釋,只知道讓測試類找到業(yè)務(wù)邏輯層UserLoginManager的代碼就是這樣寫。利用 for 循環(huán)往數(shù)據(jù)庫里面插入數(shù)據(jù)先用實(shí)體類設(shè)置相應(yīng)的數(shù)據(jù)再把實(shí)體類保存到業(yè)務(wù)邏輯層中。16 )先測試Test,右鍵 main()方法:執(zhí)行后先看數(shù)據(jù)庫里面是否有UserLogin表再打開表查看插入的數(shù)據(jù)是否正確!17 )啟動 Tocat運(yùn)行項目,登陸查看是否成功,若成功就會顯示18 )點(diǎn)擊 chaxun鏈接后要顯示所有數(shù)據(jù)庫里的東西。創(chuàng)建一個帶有表單的jsp頁面然后把 里面的代碼都去掉寫如下代碼:就是為了在查詢成功頁面上顯示:說明:利用 logic: itera

13、te標(biāo)簽和EL 表達(dá)式循環(huán)輸出數(shù)據(jù)庫里面的東西:id= ”bean ”(bean也以隨便起名字)name= ”list”( 為什么見下邊第21 步 ):獲取 id號碼:獲取用戶名:獲取密碼通過 id刪除通過 id更新19 )找到往里面填寫查詢所有的方法(checkAll():20 )找到也往里面寫查詢所有的方法(checkAll():說明:利用 dao.findByHql() 方法,傳 hql 語句和因為沒有第二個參數(shù)所以寫 null 還用 list 來接收如果 list不為空而且大小0 就返回 list(也就是把所有從數(shù)據(jù)庫里面查到的都返回) 否則返回 null21 )找到:寫代碼,其實(shí)就把

14、剛才寫過的那個check()方法復(fù)制一下,然后改寫就行了:把方法名改寫為checkAll()方法參數(shù)把a(bǔ)rg0改成 mappingarg1改成 formarg2改成 requestarg3改成 response用 request.setAttribute();把 Iuserloginmanager接口中的checkAll()方法的返回值設(shè)置給“l(fā)ist”這也就是為什么上面的第18 步的頁面中的name= “ list”了。并返回sucess22 )找到,在 中寫說明:因為在success.jsp頁面上寫的是cha xun所以 path=“ /check” parameter=”checkAll

15、”( 執(zhí)行 checkAll不使用驗證框架作用域為request成功返回checkSucess.jsp失敗返回failed.do方法 )23 )測試一下數(shù)據(jù)庫里面的數(shù)據(jù)能否顯示24 )找到寫一個刪除的方法:要利用 id刪除數(shù)據(jù)所以傳主鍵id 。25 )找到寫相應(yīng)的刪除方法:說明:利用得實(shí)體, get()dao的需要調(diào)用 delete()方法,這個參數(shù)是一個實(shí)體,所以還要用2 個參數(shù)一個是實(shí)體類一個是id所以要寫成:dao.get()獲dao.get(UserLogin.Class,id)再把它放進(jìn)dao.deiete()里面就是:dao.deiete(dao.get(UserLogin.Cla

16、ss,id) ;這樣了返回是boolean型所以返回true。26 )找到:寫相應(yīng)的刪除方法。說明:獲取一行數(shù)據(jù)的id號通過傳 id執(zhí)行接口中的刪除方法,返回成功或者失敗。27 )在 checkSucess.jsp中頁面上寫的是:所以在中的 標(biāo)簽中寫:說明:Path=“/del”說明是del.doparameter=“delById”執(zhí)行 delById方法不使用驗證框架作用域 request因為我要它刪除后還在本頁不跳另一個頁面所以我寫的是check.do也就是本頁的意思失敗跳到failed.do28) 執(zhí)行一下看看能否刪除 ( 不報錯 ) ,報錯了在檢查一下看看哪里寫錯了,尤其是是否和自己

17、起的名字是否一樣?要不就是返回值的問題和在Action中哪里返回的是空值。29) 找到,在方法中寫一個更新的方法。返回 list結(jié)果集,也是根據(jù)id更新,傳id值。30 )找到,在方法里寫一個更新的方法:說明:這個方法的參數(shù)是主鍵id ,通過 dao 調(diào)用 findByHql()方法,參數(shù)hql是通過 id查詢 UserLogin表參數(shù) id是上面Integer id傳過來的。返回相應(yīng)的集合( 集合里面有用戶名和密碼) 。31 )找到也寫一個更新的方法:說明:接收從頁面?zhèn)鬟^來的id值注意要進(jìn)行類型轉(zhuǎn)換,利用request.setAttribute()方法,第二 個 參 數(shù) 是 從 接 口 的

18、實(shí) 例 中 調(diào) 用 更 新 的 方 法 (gengById()取 出 的 值 設(shè) 置 給 第 一 個 參數(shù)“ gengxin”然后返回成功。32 )找到 :寫出更新的action說明:因為中寫的是:代碼所以: path屬性 = “ /geng”,執(zhí)行的是gengById()方法所以parameters=“ gengById” 作用域是request所以 scope=“request”如果成功返回gengxin.jsp頁面如果失敗返回failed.do。33 )創(chuàng)建一個帶form的更新頁面寫一行!34)測試一下看看點(diǎn)擊更新鏈接能否跳轉(zhuǎn)到 gengxin.jsp。35)找到:寫一個反選更新的方法:

19、它是說明:當(dāng)在 gengxin.jsp點(diǎn)擊更新按鈕的時候執(zhí)行更新的方法。36)找到也寫一個反選更新的方法:說明:把實(shí)體UserLogin和它的對象login作為參數(shù)傳給fxgengById(),利用 dao調(diào)用update(里面的參數(shù)為對象login),進(jìn)行語句的更新。37) 找到寫一個反選更新的方法:說明:把上面那個gengById方法復(fù)制過來,改代碼就可以了。先接受從頁面穿過來的id值并要進(jìn)行強(qiáng)制類型轉(zhuǎn)換;重新 new 一個實(shí)體;把 ActionForm里面的值拷貝給新通過接口的實(shí)例去調(diào)用fxgengById()new的那個實(shí)體;方法,參數(shù)為新new的實(shí)體;返回跳轉(zhuǎn)的頁面。38)找 到 頁 面 :, 把 標(biāo) 簽 里 面 的 代 碼 (除 了 表 單 、和按鈕的代碼留下以外) 全部去掉,寫下面的代碼:說明:利

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論