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

下載本文檔

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

文檔簡介

1、纟M登錄+Sq】Server2005的漩程1) 拷貝下面所說的.java文件,9個java文件和相應的包名,這些都是大果任封裝好的文件, 可以直接用。2)dao 包里面有: Dao.java 還有一個 impl 包:IDao.javaman ager 包里面有:IBaseMa nager.javaIMa nager.javalUserLogi nMan ager.java還有一個 impl 包: BaseManager.javastruts 包里面有:ApplicationRperties還有一個 action 包: BaseAct ion .java lAction

2、.javautils 包里面有:MyActionProxy.java ObjectUtils.java再把 Iperties貼到src包下面。2) 把applicati onCon text.xmlspri ng-form.tldspri ng.tldstruts-bea n.tldstruts-c on fig.xmlstruts-html.tldstruts-logic.tldstruts-nested.tldstruts-tiles.tldvalidator-rules.xmlweb.xml這些以前寫過的都可以貼過來,你可以直接把這個項目里的都貼過去,以后就直接在這里該代

3、碼就行了。以上兩個步驟樣就是為了完成手寫SSH代碼3)新建一個pojo包:白”-月jojoi: 一 rA 創(chuàng)建一個實體:先讓|:這個類實現(xiàn)序列接口如:然后寫相應的字段:private Integer id; jjrivate Svriiie username; private String password;I利用get和set方法生成每個字段的get()和set()。例如:1-ulrJ.ic Integer get Id () return id;衛(wèi)ul)J.io void, set Id (Integer id) wi日 =i日;4) 為了更夠生成二丄L,:._:,一;i所以為每一個字段寫

4、出相應的元數(shù)據(jù):1生成相應的表:PdCkdtfe pojo:/窯窯s liiberiiate class tabl-rrUserLogin,rpuhlxic cXass UserrLogin Imlemeints Java . ic , Ser iali zaki le 說明:利用 hibernate生成UserLogin表。2字段id的映射,元數(shù)據(jù)要寫在get ()方法前面:T liihemate. id giener ator-c la33=r,idEELtityfrpubXlc Integer getld()return id;pubXxc void sedd (Id.) this,id

5、 = id;3.字段username的映射,元數(shù)據(jù)要寫在 get ()方法前面:*. praperty co lLHnn1* user Ham 已lengtLi=,iOM notnull=,f al se*public Str ing get.Username ()return, username;public voiil setUsername (String userrianie) thii s . uge-naiwe = use 匚門巳me;)4.字段password的映射,元數(shù)據(jù)要寫在get ()方法前面:* 會 hmEEiiaX e - pxopcrty col wnn=rp p a

6、s swo r dPff length ,rZ0rr not -nu 11= frf a la er */public String getPassword() return passuord;:puhlie void setyaasuord (String pa33wrd) this, pas sword password;這樣這個UserLogin.java就完成了。5) 右鍵項目名稱找到“屬性”選項:運行方式調(diào)試方式概要分析方式 水姐比極對象從本地歷史記錄宜原Eh. MyEelipsePE工具辺AJ-1+Enter找到:XDoclet點擊這個出來相應的界面:XDiiiJhICenfi 申

7、就 i qt, | 3uild |Ilgfiji tEia UlozlEt Eiorifi BratL mg: a.Teilt.ble oor geer&UClL 回| I刁 SXaalar 1 KiberxLt#-1 esi Lr Color Cczist. w- Tsvi輪崖炎 r-i二tm優(yōu)阿吟式代記模檢 將式化程序 爼架導入 j3Vi糧建棒輕 jsvlCC opticus - JSViliJC TS3 JyEjLiji-JTJf Pz eiklz Talk T鼻的3IiUML壩忖用1JI 2d確定 取沱S i iniar d AOP Stsndard Bnln toStuidurd I

8、 JIKi bornateStandard JTOSandlaz-d JMKStandard PortletSt=axidrd. W elb2dw I! aias! wf r treWf= 111 1! ! w! i !1 1 i =rr9 wr rmmwnStandard JJQPI SI! - ?! TSI f SI I! B I ! T=- ! ! B S I ! n! S - ! H ! ! I ! T! U-T ? B I S ! I tStaitdard eaitliifAStandard ITBStaiLl&rd HiferrtatfiStandflrd JTO Standu-d

9、 JNX Standsrd fortlet StuLdard Web確定取消確定取消Aid StindarA.單擊按鈕,出現(xiàn):5 3sk-ienElf 的屆tt|口| 乂XDcclet信息Dei zjlet C ivIqx C ?ui IEl 廉謹器 e jHvi代咼世武榕式井稈序:刪導入_:-JasralX optc on?:Jwa.dlic 住_芝 自 MyElipJT?勺里屯匸Tau=lc Tis 匡 Vai i cat i j XDlctUHLi-Z枸連蔓項目弓用11點擊“確定”按鈕。6)右鍵項目名稱:Cc-nfiW4ti mn | timid Dei ne tlie !011, co

10、ef j 玉wt j d口工 a.rilalil gr gexier n,t i on.e -KBXSK3臼密 ki lca.an it cdo 1 e 0 fig応 L 0 O hib$” 自“-EEEl_ .$ src3 + c白e n:$ i 1 i 11 e s.Spring Capabilities,.JPA Capabili 1141. . BJZVJSTL Librari es.Hibernate Capabilities.Run XDoclet.血匝皿Eg 2會僉Xl?o匚I刖石4娥到心查詢更茅詞典搜索因特網(wǎng)Run ValidateExclude FrorM W4ge VQiR

11、mv All Validation Hurkari執(zhí)行Run XDocle后只要出現(xiàn):ng imiicux- l Ari vuioii! n 5?V,i?UL!tW V-yyiFWinIIVV t_.mjEui2if lie ; C: DocuKnt3 sildI Settd.nqs AJminL3tra.bqh 2 ?XmviFDr k JSP ?、. xdocl亡t -kuildi. tzrgs meiI KS54jQ;|hilb er iiat edoz Let i; SD dc let Ha lil4*7 | RLmnin hibe m6it ehlb er siat edoz; 1

12、11 Generfiitmg raaping file lor jojo U 目注 rLogXruhiber astedos 1 #tpojo - UsmLeguixdoelt_gni*r nt ion_:SUIL SlKCHrULTnEsil tlvne? S冒旦住口詢且就說明你的UserLogin類的課血紂5孝山hM.冊.創(chuàng)建成功了!7)新建一個 UserLogin.jsp的頁面(帶Form的那種頁面):File Pa:/ssbdenglu/WebRootFile Nams:刖JspjspTerriplate to use;圍tandard J5P using Struts 1何th a

13、formBrowse-.生成相應的頁面后把屬性名稱,改成:text propei7ty= F,usemanaerr匸 A匕七 dPassucicd = - “匸匸卜給相應的action后面添加一個名字,指明提交表單后走哪個.do如:8)找到s truB-config, xml雙擊:在代碼標簽中手寫action(就是上面表單提交后的那個/*.do):tion-mappingsneaie=use匚Lq訶inF口匸oi type= poja/說明:根據(jù)jsp頁面提交的/UserLogin.do 找到struts-config.xml里面的path屬性,根據(jù)name屬性找到form-bean標簽里的n

14、ame屬性,以及它對應的type屬性,type屬性寫的就是pojo類中UserLogin的全名(包括包名和類名),Parameter屬性是說明表單提交后要執(zhí)行check方法,Validate= false屬性說明不使用表單驗證框架,Scope= request說明作用域是 request,Type= ”屬性寫得就是你一會要創(chuàng)建的UserLoginAction的全名(包括包名和類名),F(xiàn)orword標簽就是說明要是 check成功后跳轉(zhuǎn)success.jspj,失敗就跳轉(zhuǎn)failed.jsp頁面。jsp頁面。根據(jù)上面的xml文件我們創(chuàng)建相應的.java類和相應的在action包里面創(chuàng)建一個ser

15、Logirbfiction. java在Web-Root下創(chuàng)建一個普通的11 頁面。在 manager包里的impl包里面創(chuàng)建一個 UserLoginManager.java 文件:!* managerj + impl$ 2 6aseManager.ja?dLlserLDginManaqer Java卜迎ft-在 manager包下創(chuàng)建一個接口lUserLoginManager.java 文件:manager卯:- J_ BseMnager.java _ UerLaginMariger.testUsEir LogiriManager .iiava TesLjavaManager, jaa10)

16、在 lUserLoginManager.java 接口中寫:EJuJjlic altstrajct String check (UserLcgin user inf );寫這個方法,因為我們要在業(yè)務邏輯層UserLoginManager.java中寫check()方法和hql語句進行檢查用戶登錄名稱和密碼是否正確,而 UserLogi nMa nager.java 是實現(xiàn) IUserLoginManager.java接口的所以就要在這里寫這個方法。 還有一個原因是這是 ssh項目用 到了 Spring,Spring的優(yōu)點就是讓類去實現(xiàn)接口,體現(xiàn)了解耦合的好處。11)在業(yè)務邏輯層 UserLog

17、inManager.java 中寫:public classextends EaseHarjagei inclements IUseiloqirJIanager 讓這個類繼承BaseManager(泛型的 BaseManager)還要實現(xiàn)剛才寫的那個IuserLoginManager 接口。在這個類里面寫public String check(UserLcgin user info)這個check()方法是用來檢查用戶在登陸頁面的時候登錄名和登錄密碼是否與數(shù)據(jù)庫 里的一致。具體方法如圖:iibJ.lc Stirimg Chech (UserLogin nseizinf ) String hql

18、=,rfroni UeLogin u uhete uusername=? and u* password? r; Qbject valuesnev Object 2;values 0 = us er info. ger. User name ():valuer LJ =user luXq gevFaswarti ();List list dao. f indByHtjl (hql t values);(list != mil1& 1igt.sise(0)return SUCESS;elsereturn FATLEJ說明:Eti: tLCl= rrrom UserLcgin u where u_

19、 usernamie=? nd n. passuord= ?,f:就是一個傳給數(shù)據(jù)庫的hql(hibernate查詢語言)語句。Otoj eC:t values=new Otoject 2;valu.es 0 =VLser info .get User name ( :valu.es 1 =Liserinf o . get Pas s wo r d ();就是一個對象數(shù)組,數(shù)組下標從0開始,values0表示的獲取用戶名的值values1表示的是獲取用戶密碼的值注意:剛才的 hql語句第一個是 u.username= ?貝9 values0就是獲取username的值; 如果第一個是 u.pa

20、ssword= ?貝9 values0就是獲取 password的值。一定要注意位置寫反了就永遠查不出來了。LList-= 厲旦口. f indSyHql (hqlr values);利用dao調(diào)用findByHql()方法,里面參數(shù) hql(剛才的String hql)和values(剛才的對象 數(shù)組)。返回的結(jié)果用 Listlist來接(泛型版本的)。iz (.1 lst ! = mil 1 忌屋 Lrst. sise () !0J return. S If CESS; ej_jse vcturn FAILED;就是如果list不為空而且里面有相應的數(shù)據(jù)(也就是list的大小0)就說明查詢

21、成功返回success 否則就返回failed12) 在iUserLcginActiori. javs中寫代碼:IUserLogi nMan ager接口作為字段生讓此類繼承 BaseActio nvUserLogi n,再把成set方法,再添加check方法(添加未實現(xiàn)方法還要改名為check方法)。具體代碼如下圖:public class Us er Lo Qfin Ac t io i: ext ends; Bas e Ac t i on fir i vAtTUs e-rLeg inMsi nags rluaerlo g i mre na ger:pruj-Lic /cid 5ec los

22、er logimnaiiager (lUserLogrinfianager ins er log lniuanaer I user Log! rmanager = iiiser logi Emanage c ;uhJJLc A,ctioiiFo匚 btol匸d check (Act ionllappinig, ar號口亍 ActicnFo匚m acg 1 rHttpoerv let Re quest arg2, B11 pS e r v le t Rs sp osnse arg3 J throws ExceptiontngerLofjin user loain = hf*w iTserLocr

23、in () jEconVt iLn 8 1:口口口彗in argl) tre tiLAii ax CO 丄EaIFqem旨lIusin直ugJjMiSU曾甘啟?。?UhEGlc (U3亙E Jldgln);說明:把lUserLoginManager接口作為字段(這是一種設計模式叫做簡單工廠。)在check()方法中:先實例化 UserLogin,利用 BeanUtils 的 copyProperties(實例 userlogin,ActionForm 的 argl) 方法,就是把ActionForm的實例arg1得到的實體(從頁面得到的用戶輸入的用戶名和密碼 )整 個拷貝給實例userlogi

24、n。返回 ActionMapping 的實例 arg0 的 findForward(接口的實例.check(實例 userlogin)方 法。13)找到印 p lie ationCo ntext .ml修改代碼:jpojo/TJserLogi n, hbm. xml/va _LuQ寫上自己寫的映射文件名稱和路徑。1 bean id=F,Daofr class= *dao impl D曰口AV 匚loca 1- MSe3s ionFactoEy,/r 2.檢查相應的包名類名和自己的項目中的包名類名是否一致,如果一致就不用修改。3. /JiSolJertV iLSiwe- f,dao,r把寫的Us

25、erLoginManager注入到Spring里面去。4.把 UserLoginAction 注入到 Spring 里面去。14)在 SUCeSE ,Sp中寫一個鏈接說明:登陸成功后進入success.jsp會顯示相應的鏈接3 href - fFc:hecfc, doMcha xu 口 / 如果登錄失敗就會顯示 404錯誤/failed.do15)在 manager包里面創(chuàng)建一個 test包在創(chuàng)建一個帶有 main()方法的test類: ii managerj ;弓 impl卜T| BaseManager.ja;= J UserLoginMareger.jova testffit :AAJes

26、t javaI GaseManag er. javaIMdreernjavdI LteerLo inM ansgr.寫這個測試類就是為了利用for循環(huán)在表里插入相應的數(shù)據(jù)i值是可以變的,在SqlServer2005中光新建一個數(shù)據(jù)庫sshdenglu就行了,它可以生成 UserLogin表里面還有循環(huán)插入的數(shù)據(jù)。、宀 亠 :ppIicaticnCoritext.x | 亠 注意:在中vproperty n ame=urlvalue=jdbc:sqlserver:/:1433;databaseName= sshde nglu 數(shù)據(jù)庫的名稱和你新建數(shù)據(jù)庫的名稱一樣就行了。寫如下代

27、碼:public static vd14 ftan:(String argg) Fanfactarv 加就弘:FiLe573tEir2iiUpplicatinCciitex | r,UetoRoo:/lilt -IXF a? 1 ic:ti oaContKt. n 1ri |; erLog;nJ9aLagei u5Er-;gin&nager - (UerLiiLKaxiajerj beaiFset01:7.reteau(CserLinltaaag=r*|;for (int i = 0; 1 c 10; 1+) UserLogin userlojin s nnr lb 亡 Mcg in (::u

28、ser login. setUsetnane (a+i);usar 1 oghi, aetPasa vord (vaar +J;ierlogi nrnarage r. save3n= (user La gi n) j:說明:B=&nFactorV heanF&ctorv=iiev ?ileSystiiiiLApplicatiDnContejtt(,lUeboot/Ui:B-aPF/appiicatiaiCoii:eKt.xnl,f);因為在嚴弩皿5心中對于實體類pmumH的注入,所以用BeanFactory(Bean工廠)利用new 一個xml文件并把找到的 spring 的xml文件放進新

29、new的xml中去,這樣就可以讓測試類找到注入的相關東西。IserLogintoag: ise:Locimnager叮旳eiLjMi:腕1坷旳 怕an際加卩g吃洌除乩叫iiffl沏曲口;不會解釋,只知道讓測試類找到業(yè)務邏輯層UserLog in Ma nager的代碼就是這樣寫。for (int 1 = Dj i 10; i+) UaErrLogin Kiseu lcgin = n eir User Log-in (); user login setUsername (,F a,r + i);user login. setFassucrd (,|haarr + i):usetr 1 cgi.

30、s&vOiie (user login.):利用for循環(huán)往數(shù)據(jù)庫里面插入數(shù)據(jù)先用實體類設置相應的數(shù)據(jù)再把實體類保存到業(yè)務邏輯層 中。16 )先測試Test,右鍵 main() 方法:住Add to Snippets,.|Rlti AsA L 血n 汕血忡erfllt+ShiFt+3C? RRebyg As卜Profile AsTftflm卜DAppkatioriAlt+Shift+Xj J | j卜 3 Mi/Eclipcse Server A ppli cation執(zhí)行后先看數(shù)據(jù)庫里面是否有UserLogin表再打開表查看插入的數(shù)據(jù)是否正確!checkSucess.jsp17 )啟動Toc

31、at運行項目,登陸查看是否成功,若成功就會顯示18 )點擊chaxun 鏈接后要顯示所有數(shù)據(jù)庫里的東西創(chuàng)建一個帶有表單的jsp頁面然后把里面的代碼都去掉寫如下代碼:er, 1 is c ,r-doean 戈inkisj; $beanu已亡匸巴 nbsp; ciibsp;Weanpasauord sntosj; fiWsp; finLap;a hre=,rde 1 shanc?hu4nJospj snbsp; logic : itetetc?-就是為了在查詢成功頁面上顯示:Sfbeatiid th&an.useriiaine ) S be an. pass word 陽 anchu說明:利用lo

32、gic : iterate 標簽和EL表達式循環(huán)輸岀數(shù)據(jù)庫里面的東西:id= bean ” (bean 也以隨便起名字) name= list ” (為什么見下邊第 21步)beftn.id :獲取 id 號碼:獲取用戶名 ;二二 :獲取密碼,f : J -:;.1.通過 id 刪除- I - : : - : I通過 id 更新19 )找到-d-irUsBrloginManciger1 java往里面填寫查詢所有的方法(checkAll()public Li-st checkA.il ();20 )找到UwerL羽inM nag er j目佃也往里面寫查詢所有的方法(checkAll()pub

33、lLc Lit checkAll :String hql=,fuoniL Lst i 1st = dao. lnclEYHql (liql, 0) ret口匸n 丄ist;return niiLL;說明:禾U用dao.findByHql()方法,傳hql語句和因為沒有第二個參數(shù)所以寫null 還用list 來接收如果list不為空而且大小0就返回list(也就是把所有從數(shù)據(jù)庫里面查到的都返回)否則返回nullJ UsertoginAdtion.java21 )找到寫代碼,其實就把剛才寫過的那個check()方法復制一下,然后改寫就行了:public AptlnnForwsird check!丄

34、1(AciLinnMappiii naripiigr ictioirorti torxi,Ht. t pServ let Bequest; reiquest HttpS er vie 匚 Rm 呂 pci ns e response throws Except ion requet.setittrlbutelULSlDgimnanaer. checkkLL (| |;return mapping 壬:11111?=1匸巾&0:1(常:311二已弓5:呼);把方法名改寫為checkAll()方法參數(shù)把arg0改成 mappingarg1改成formarg2改成 requestarg3改成 res

35、ponse用 request.setAttribute();把 Iuserloginmanager接口中的 checkAll()方法的返回值設置給list”這也就是為什么上面的第18步的頁面中的name= list ”了并返回 sucess22 )找到osnn,在 中寫/壬口匕381匕(1、fceiraEd name=,railed path=/fQiled1口扌卞/上口匸西匸口說明:因為在 success.jsp頁面上寫的是 cha xun所以 path= /check ” parameter checkAII (執(zhí)行 checkAll 方法) 不使用驗證框架作用域為 request成功返回

36、 checkSucess.jsp失敗返回failed.do23 )測試一下數(shù)據(jù)庫里面的數(shù)據(jù)能否顯示24 )找到IUst?rLogi nManager .pva寫一個刪除的方法:nuliTic hiDoluean delByld (Integer id);要利用id刪除數(shù)據(jù)所以傳主鍵id25 )找到UserLogii Manager .ja w寫相應的刪除方法:piiblic boolean delByld (Integer id) da.a, delete (dac. get (UseuLcgin id):return true;/return false;說明:利用dao調(diào)用delete()

37、 方法,這個參數(shù)是一個實體,所以還要用dao.get() 獲得實體,get()的需要2個參數(shù)一個是實體類一個是id所以要寫成:dao.get(UserLogin.Class,id)再把它放進 dao.deiete()里面就是:dao.deiete(dao.get(UserLogi n.Class,id);這樣了返回是boolean型所以返回true 。26 )找到丄心:寫相應的刪除方法。liuliJLic ActlcnForword dslByld (ActiotiMairpingr tnpping-, Act lorTorin lorm,H11 r Se r v 1 et e aue 51

38、re xuest, H11 d Servlet les o o nse response) thrmrs EceptlonJI i-teger a t r n ng Int ege 匸.paxseZzst (request gu 匸 Pm匸鬥血匸匸亡工 f aLd*1)fir (1 usee! crlnmanacer ci皂丄Bld (str irq) IreturnL mapp inci B f indFoc v&rd. *5 llc = 35;eJ.eereturn nappinc.f iadFo&i:d( Tieiledrr);說明:Integer string I nt 亡 0 巴匚衛(wèi)

39、厲上勻亡王(imqurs匸口亡匚Feor&nietEir (習 iri);獲取一行數(shù)據(jù)的id號i (lusuloiiuna.iLa-ee de lEyld (sc-c-in) return napp ing工 i n.dF0rirard (rpsuce53rr);elsere tn mapp 1 ng. i indFcrTfard(,Rfailed*);通過傳id執(zhí)行接口中的刪除方法,返回成功或者失敗。27 )在checkSucess.jsp中頁面上寫的是:slianchuiH struts-conFig.xiril .標簽中寫:所以在中的 foruard name5-J-ic List ge

40、ngByld (Integer id J Seeing hqJ.nUsstLogin where id-? ”;Lisc name = dao . iindByHcll (hq 1 Id); return naiwe;說明:這個方法的參數(shù)是主鍵id ,通過dao調(diào)用findByHql() 方法,參數(shù) hql是通過id 查詢UserLogin 表 參數(shù)id 是上面Integer id傳過來的。返回相應的集合(集合里面有用戶名和密碼)。31 )找到由屈UsrL&girAeti . j iv 4也寫一個更新的方法:liiihlic jicrionForward gen ByldiA-r cion H

41、apping irapr ing, kctianForro forrafHttpServletquest 匸亡questj EttpSeryletF3p匚xi日亡 responseithrows EncptionlInTegr string = Integer.pdreZnt匚便亂匸血更匕已】ELd”i);reque3t 巴巳tAttribute(Pgezigxin# userlo牙二皿“耳人曰孑亡: jengById(sti:;iig );re turn rrapping,f indroruardfr9uceggrr說明:接收從頁面?zhèn)鬟^來的 id值注意要進行類型轉(zhuǎn)換 ,利用request.setAttribute()方法,第二個參數(shù)是從接口的實例中調(diào)用更新的方法(gen gByld()取岀的值設置給第一個參數(shù) ge ngxin 然后返回成功。32 )找到B EtrulE-caafig. xml寫岀更新的 actionfaction psth=,r/gen.or war d ii

溫馨提示

  • 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

提交評論