ssh增删改查流程_第1页
ssh增删改查流程_第2页
ssh增删改查流程_第3页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 创建一个实体:先让|:这个类实现序列接口如:然后写相应的字段:private Integer id; jjrivate Svriiie username; private String password;I利用get和set方法生成每个字段的get()和set()。例如:1-ulrJ.ic Integer get Id () return id;卫ul)J.io void, set Id (Integer id) wi日 =i日;4) 为了更够生成二丄L,:._:,一;i所以为每一个字段写

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

5、 = id;3.字段username的映射,元数据要写在 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的映射,元数据要写在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) 右键项目名称找到“属性”选项:运行方式调试方式概要分析方式 水姐比極对象从本地历史记录宜原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优阿吟式代记模檢 将式化程序 爼架导入 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.单击按钮,出现: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娥到心查询更茅词典搜索因特网Run ValidateExclude FrorM W4ge VQiR

11、mv All Validation Hurkari执行Run XDocle后只要出现: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.册.创建成功了!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/说明:根据jsp页面提交的/UserLogin.do 找到struts-config.xml里面的path属性,根据name属性找到form-bean标签里的n

14、ame属性,以及它对应的type属性,type属性写的就是pojo类中UserLogin的全名(包括包名和类名),Parameter属性是说明表单提交后要执行check方法,Validate= false属性说明不使用表单验证框架,Scope= request说明作用域是 request,Type= ”属性写得就是你一会要创建的UserLoginAction的全名(包括包名和类名),Forword标签就是说明要是 check成功后跳转success.jspj,失败就跳转failed.jsp页面。jsp页面。根据上面的xml文件我们创建相应的.java类和相应的在action包里面创建一个ser

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

16、在 lUserLoginManager.java 接口中写:EJuJjlic altstrajct String check (UserLcgin user inf );写这个方法,因为我们要在业务逻辑层UserLoginManager.java中写check()方法和hql语句进行检查用户登录名称和密码是否正确,而 UserLogi nMa nager.java 是实现 IUserLoginManager.java接口的所以就要在这里写这个方法。 还有一个原因是这是 ssh项目用 到了 Spring,Spring的优点就是让类去实现接口,体现了解耦合的好处。11)在业务逻辑层 UserLog

17、inManager.java 中写:public classextends EaseHarjagei inclements IUseiloqirJIanager 让这个类继承BaseManager(泛型的 BaseManager)还要实现刚才写的那个IuserLoginManager 接口。在这个类里面写public String check(UserLcgin user info)这个check()方法是用来检查用户在登陆页面的时候登录名和登录密码是否与数据库 里的一致。具体方法如图: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:就是一个传给数据库的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 ();就是一个对象数组,数组下标从0开始,values0表示的获取用户名的值values1表示的是获取用户密码的值注意:刚才的 hql语句第一个是 u.username= ?贝9 values0就是获取username的值; 如果第一个是 u.pa

20、ssword= ?贝9 values0就是获取 password的值。一定要注意位置写反了就永远查不出来了。LList-= 厲旦口. f indSyHql (hqlr values);利用dao调用findByHql()方法,里面参数 hql(刚才的String hql)和values(刚才的对象 数组)。返回的结果用 Listlist来接(泛型版本的)。iz (.1 lst ! = mil 1 忌屋 Lrst. sise () !0J return. S If CESS; ej_jse vcturn FAILED;就是如果list不为空而且里面有相应的数据(也就是list的大小0)就说明查询

21、成功返回success 否则就返回failed12) 在iUserLcginActiori. javs中写代码:IUserLogi nMan ager接口作为字段生让此类继承 BaseActio nvUserLogi n,再把成set方法,再添加check方法(添加未实现方法还要改名为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包里面创建一个 test包在创建一个带有 main()方法的test类: ii managerj ;弓 impl卜T| BaseManager.ja;= J UserLoginMareger.jova testffit :AAJes

26、t javaI GaseManag er. javaIMdreernjavdI LteerLo inM ansgr.写这个测试类就是为了利用for循环在表里插入相应的数据i值是可以变的,在SqlServer2005中光新建一个数据库sshdenglu就行了,它可以生成 UserLogin表里面还有循环插入的数据。、宀 亠 :ppIicaticnCoritext.x | 亠 注意:在中vproperty n ame=urlvalue=jdbc:sqlserver:/:1433;databaseName= sshde nglu 数据库的名称和你新建数据库的名称一样就行了。写如下代

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沏曲口;不会解释,只知道让测试类找到业务逻辑层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循环往数据库里面插入数据先用实体类设置相应的数据再把实体类保存到业务逻辑层 中。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执行后先看数据库里面是否有UserLogin表再打开表查看插入的数据是否正确!checkSucess.jsp17 )启动Toc

31、at运行项目,登陆查看是否成功,若成功就会显示18 )点击chaxun 链接后要显示所有数据库里的东西创建一个带有表单的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表达式循环输岀数据库里面的东西: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语句和因为没有第二个参数所以写null 还用list 来接收如果list不为空而且大小0就返回list(也就是把所有从数据库里面查到的都返回)否则返回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()方法参数把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 (执行 checkAll 方法) 不使用验证框架作用域为 request成功返回

36、 checkSucess.jsp失败返回failed.do23 )测试一下数据库里面的数据能否显示24 )找到IUst?rLogi nManager .pva写一个删除的方法:nuliTic hiDoluean delByld (Integer id);要利用id删除数据所以传主键id25 )找到UserLogii Manager .ja w写相应的删除方法:piiblic boolean delByld (Integer id) da.a, delete (dac. get (UseuLcgin id):return true;/return false;说明:利用dao调用delete()

37、 方法,这个参数是一个实体,所以还要用dao.get() 获得实体,get()的需要2个参数一个是实体类一个是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 巴匚卫

39、厲上勻亡王(imqurs匸口亡匚Feor&nietEir (习 iri);获取一行数据的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执行接口中的删除方法,返回成功或者失败。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;说明:这个方法的参数是主键id ,通过dao调用findByHql() 方法,参数 hql是通过id 查询UserLogin 表 参数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说明:接收从页面传过来的 id值注意要进行类型转换 ,利用request.setAttribute()方法,第二个参数是从接口的实例中调用更新的方法(gen gByld()取岀的值设置给第一个参数 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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论