《ssh增删改查流程》由会员分享,可在线阅读,更多相关《ssh增删改查流程(24页珍藏版)》请在人人文库网上搜索。
1、ssh增删改查流程1)拷贝下而所讲的Java文件,9个java文件和相应的包名,这些差不多上大果任封装好的 文件,能够直截了当用。2) dao 包里而有:Dao.java 还有一个 impl 包:IDao.javamanager 包里面有:IBaseManager.javaIManager.java IUserLoginManager.java还有一个 impl 包:BaseManager.javastruts 包里面有:ApplicationResources.properties还有一个 action 包:BaseAction.java IAction.javautils 包里而有:MyA。
2、ctionProxy.java ObjectUtils.java再把log4j.properties贴到src包下面。2)把 applicationContext.xmlspring-form.tldspring.tldstnits-bean.tldstruts-config.xmlstnits-html.tldstnits-logic.tldstnits-nested.tldstnits-tiles.tldvalidator-rules.xmlweb.xml这些往常写过的都能够贴过来,你能够直截了当把那个项目里的都贴过去,以后就宜截了当 在那个地点该代码就行了。以上两个步骤样确实是为了完成手。
3、写SSH代码3)新建一个pojo包:LJJAUI日剧pojo 创建一个实体:巨 TD UserLogin. j ava =r-x先让PU1Q让olass U3erLOgin那个类实现序列接口如:然后写相应的字段:卫rivate Integer id; private String username; private String password;|利用get和set方法生成每个字段的gct()和set()o例如: piiblic Integer get Id ()return id;public void set Id(Integer id) this.id = id;4) 为了更够生成訪咤。
4、皿hbm.Ttml因此为每一个字段写出相应的元数据:1.生成相应的表:package pojo;/七力七畜 hibernate. c lass table=rrUserLoginrfpulilic class UserLogin implements java io Serializable 讲明:利用hibernate生成UserLogin表。2 字段id的映射,元数据要写在gel ()方法前而:|小k Ohibernate i段 generator-class=rridentityrrpublic In匚eger getld() return id;public void setld (I。
5、nteger id.) this.id = id;3.字段username的映射,元数拯要写在get ()方法前而:* hibernate property colurcin= MusernarneF, length= FF20M */public Str ing getUsernarne ()return username;public void setUsernarne (String U3ernarne) this - usernarne = username;4.字段password的映射,元数据要写在get ()方法前而:/ ttinot-null=rrf alserr* Qliib。
6、ernate property colunn=trpassword length= rr20r, Vpublic String get-Password () return passwrd;puJilic void setPassx.rord (String password) this .psssuoirdl = password;如此那个UserLogin.java就完成了。5)右键项目需称找到“属性”选项:运行方式(B)调试方式Q)槪要分析方式g)小鉅)比较对象)从本地历史记录复原CX).MyEclipsePDE工具(O)属性)Alt+Enter找到:XDoclet点击那个岀来相应的界而。
7、:w , 九& Standard.单击按钮,显现:选中:并单击确左按钮。显现:点击“确定”按钮。6)右键项目名称:package pojo;白锣src申田i由“ 4 由“ 曰谭I S-|氈白田厂新建址)进入d)在新窗口中打开(S)打开类型层次结构(S)F4腫复制Ctrl+C复制限定名歯粘贴他)Ctrl+VX删除)Delete 构建路径)源代碍$)Alt+Shit+S重构(I)适导入(!) 必导出刷新E)F5关闭顶目)运行方式 |调试方式)槻要分析方式(V小组比较对象)从本地历史记录复原(!)1MyEclipsePDE工具属性龜)Alt+Enter H L】Dr1 ttSs UserLogin 。
8、inplements javaioSeri?Tnr.pcar i d :Add and Remove Project Deployments.Add Web Service Capabiliti Add Tapes try Capabil it ies Add Struts Capabilities. Add Spring Capabilities. Add JPA Capabilities.Add JSF Capability Add JSTL Libraries.Add Hibernate Capabiliti”.Run XDocletf Open in Exp: Q醫念XDoclet 而。
9、佃RunK , F查询更多词典严仔搜索因持闕Manage A all aaz on.Remove All Validation Markers执行Run XDocle后只要显现:miiaicuz L.n uuiam i icv*iu.uuicmiiijava/r.czc uvuv t,?.iu.wn ri*iEui2dilc: C: Doctaircnc and Sc 11 i ngo Achrt in i3t rator ? ? my trot k J SP ? ? l 11 xdoclc t- buil d tmp N6SSM:hibernat edoc Let (XDoc Let Mai。
10、n etart47| Running Login:Password:给相应的action后而添加一个名字,指明提交表单后走哪个.do如: 8)找到 O struts-config.xml 双击:在代码“etioPPigm标签中手写action(确实是上面表单提交后的那个/*.do):在找到 虫口绅标签,写上foimbcan的代码:讲明:依照jsp页面提交的/UserLogin.do找到struts-config.xml里而的path属性,依照name属性找至!1 form-bean标签里的name属性,以及它对应的type属性,type属 性写的确实是pojo类中UserLogin的全名(包括。
11、包名和类需),Parameter属性是讲明表单提交后要执行check方法,Validate=“falsc”属性讲明不使用表单验证框架,Scope=,request讲明作用域是 request,Typc=“属性写得确实是你一会要创建的UserLoginAction的全名(包括包冬和类划),Forword标签确实是讲明要是check成功后跳转success.jspj,失败就跳转failed.jsp页 而O9)依照上而的xml文件我们创建相应的Java类和相应的jsp页面。在action包里面创建一个2加UserLoginAction. java在Web-Root下创建一个在manager包里的im。
12、pl包里面创建一个UscrLoginManagcr.java文件: 田 manager油 implb Jj BaseManager.javaUserLoginManaqer .javaj卜剧-|T| BaseManager, javat : Jj UserLoginMarvag曰j抄a $ testt jj Test.javab Jj IBaseManager.java Jj IManager.javaIUserLoginMa nager .javaJ讪10) 在 IUserLoginManager.java 接口 中写:public aibstract String check (UserL。
13、ogin user inf o);写那个方法,因为我们要在业务逻辑:层UscrLoginManagcr.javd中写check()方法和hql 语句进行检查用户登录名称和密码是否正确,而UscrLoginManagcr.java是实现 IUserLoginManager.java接口的因此就要在那个地点写那个方法。还有一个缘故是这是ssh 项目用到了 Spring, Spring的优点确实是让类去实现接口,表达了解耦合的好处。11) 在业务逻辑层 UscrLoginManagcr.java 中写:pulilic class UserLogirlanager extends EaseIanage。
14、r(泛型的BaseManager)还要实现刚才写的那个 IuserLoginManager 接 口 0在那个类里而写public String check(UserLogin user info)那个check()方法是用来检查用户在登陆页面的时候登录夕i和登录密码是否与数据库 里的一致。具体方法如图:public String check(UserLogin userinfo) String hql=,rfrom UserLogin u where u usernarne=? and u. password=?,r; Object values=ne5r Object2;values0 =u。
15、serino. getUsernarne ();values 1 =userinQ. getPassword();List list = dao f indByHql (hql, values);if (list ! = null & list .size () 0)(return SUCESSelsereturn FATLED;讲明:String hql = rrfroin UserLogin u where u.usernawe=? and u password.= ?rr;确实是一个传给数据库的hql(hibcrnate查询语言)语句。0)3ject values=nevr Object。
16、 2;values0 =userinfo.getUsernaine ();values1 =userinfo.getPassword();确实是一个对象数组,数组下标从0开始,values表示的猎取用户名的值values! 1示的是猎取用户密码的值一怎要注意位這写反了就永久査不岀来了。List list来接(泛型版本的)。if (list != null & lis匕.size)0) return. S必ESS;else return FATLEE;确实是假如list不为空而且里面有相应的数据(也确实是list的大小0)就讲明查询成功 返回success否则就返回failed12)在上血Use。
17、rLoginActio n. javd中写代码:让此类继承,再把IUserLoginManager接口作为字段生 成set方法,再添加check方法(添加未实现方法还要改名为check方法)具体代码如下图:public class UserLoginAction extends BaseActionprivateTUserLoginManagerIuser loginrranager;pubic void set. iuser logimnanager (I us er L o g mnanage r iuser loginrnanager | Iuser loginmanager = ius。
18、er logimnanager;puli Tic Act ionFor ward check (ActionHapping argO, ActionFo cm acgl, HttpServletRequest arg2, HttpServletResponse arg3) thrcnrs E:ceptionUserLogin user login = new UserLoain():BeanUt113 (user login, argl);return arg0 rindForu&Ld( lusexloglnrn chick: (usexlogin);讲明二_____把IUserLoginMa。
19、nager接口作为字段(这是种设计模式叫做简单工厂。)在check()方法中:先实例化 UserLogin,利用 BeanUtils 的 copyProperties(实例 userlogin,ActionForm 的 argl) 方法,确实是把ActionForm的实例argl得到的实体(从页面得到的用户输入的用户名和密码) 整个拷贝给实例userlogino返回 ActionMapping 的实例 argO 的 findForward(接口的实例.check(实例 userlogin)方 法。13)找到0SIBSQBr-a.修改代码:pojo/UserLogin hbm.xml1. 写上自。
20、己写的映射文件名称和路径。2检查相应的包名类名和自己的项目中 的包名类名是否一致,假如一致就不用修改。3.把写的UserLoginManager注入到Spring里而去。4.把 UserLoginAction 注入到 Spring 里而去。14)在“uce$jp中写一个链接讲明:登陆成功后进入success.jsp会显示相应的链接假如登录失败就会显示404错误15 )在manager包里而创建一个test包在创建一个带有main()方法的test类:,B manager1 : H impl卜JJ BaseManag er. java J2l UserLogin M anag er. ja Ya。
21、/ 由 testTest, javab Tj I BaseM anag er. ja vaP E IManager.javab JS I UserLog in M anager. java写那个测试类确实是为了利用for循环在表里插入相应的数据i值是能够变的,在 SqlServer2OO5中光新建一个数据库sshdcnglu就行了,它能够生成UserLogin表里而还有循 环插入的数据。.心/. / - applicationcontext.x (,数据库的名称和你新建数据库的名称一样就行了。写如下代码:public static void main (Str ing args) BeanFa。
22、ctary bearJactory=neff FileSy3teiraiLAppLicationConte:t|frUebRoot/UEE-M/applicationContcxt.xnilr,|; UserLoginManager usetLoginmansgei: = (UserLoginManager) fa eanF ac t or y. ge t Be an (Use iL ogi nKanage rM | ; for (int i = 0; i 利用for循环往数据库里面插入数据先用实体类设置相应的数据再把实体类储存到业务逻辑层 中。16) 先测试Test右键main ()方法:翁。
23、 Add to Snippets.Run AsDebug AsProfile AsTftam罔 Run on ServerAlt+Shift+X, RD Z Java ApplicationAlt+5hift+X, JtQ 3MyEdipse Server Application执行后先看数据库里闻是否有UserLogin衣再打开衣查看插入的数据是否正确! !chaun17) 启动Tost运行项目,登陆查看是否成功,若成功就会显示18) 点击chaxun链接后耍显示所有数据库里的东西。创建个带有农单的jsp贞而鱼checkSucess.jsp然后把bodyX/body里面的代码都去掉写如卜代码。
24、:shanchuntosp; intosp; gengx in确实是为了在查询成功页而上显示:$ bean.id ) $ bean.username S(bean.passwcrd ) shanthu /ngan讲明:利用logic: iterate标签和EL农达式循环输出数据库里而的东西: id=/zbean,z (bean也以随便起名字)name=zzlistz/ (什么缘故见下边第21步)bean-Ld :猎取 id 号码$ (bean, usernarne猎収用户名$ bean, password彳昔取密码IllserLoginManager. javashanchu-通过 删|绦 h。
25、ref=Frgeng. do?sid=$bean. id已勺通过 更新往里面填写查询所有的方法(checkAll (): public List checkAll(J;20)找到BQrt-i .UserLogin M anag er .jaya也往里(fit上i査询所有的方法(checkAll ():public List checkAll() String hql=rrfrorn UserLoginrr;List. list. = dao. f indByHql (hq 11 null); if(113t != nuUL & li3t.size (J 0)return list;return。
26、 nul1;讲明:利用dao . f indByfiql ()传hql语句和因为没有第二个参数因此筠null还用lis匕来接收假如list不为空而且人小0就返回list (也确实是把所有从数据库里而査到的都返回) 否则返回null写代码,事实上就把刚才写过的那个oheck()方法复制下,然后改写就行了:pulilic ActionForward checkAll(ActionMapping mappingf ActionForw form; HttpServletPequest request HccpServlecResponse response)throws Exception requ。
27、est .SEtJirtxibutEIusEtrloginmanagEt: checkJLLL (| | ;return trappingfindFDi:warci(3UCESs);把方法名改写为checkAll ()方法参数把argO改成mappingargl 改成 formarg2 改成 requestarg3改成 response用 request setAttribute ();把 I us er loginmanager 接口 的 checkAll ()方法的返回值设置给list这也确实是什么缘故上闻的第18步的页面中的name= list C并返回sucess22)找到盘strut。
28、s-wnfig.xnnl在中打讲明:因为在 success . jsp 页面上写的是Witt path= u /check pazamEtEi:=ohEC:kAll(执行 checkAll 方法)不使用验证框架作用域为request成功返回checkSucessjsp 失贝攵返回faileddo23)测试下数据库里面的数据能否显示24)找到匕卫IUserLoginManager .jva写个删除的方法:public boolean delByld(Integer id);要利用id删除数据因此传主键id。25)找到二皿UserLogin M en ager. ja va写相应的删除方法:卫Hb。
29、Jlic boolean delByld (Integer id) dao delete (dao. get (UserLogin cJLass # id); return true;/return false;讲明:利用亞。调用delete ()方法,那个参数是个实体,因此还要用dao. get ()获 得实体,get()的需要2个参数个是实体类一个是id因此要写成:dao . get (UserLogin . Class z d)再把它放进 dao . deiete ()里面确实是:dao deiete (dao get (UserLogin Class f id);女II此 /返回是bo。
30、olean型因此返回trueo26)找到也呱erLoginActim伽无 写相应的删除方法。public Act icnForword delByld (Act ionMapping mapping, Act-ionFotzm form,HttpServletReQuest request, HttpServletResponse response)thrm/s ExceptionInteger string - Integer pomomt (iruquun匕 gucParoiYieDui: (ni.d);if (I us e r io g i manager .delByld (scr m。
31、g) lreturn moppingf indFDQU0i:d( ucu”);elsereturn mappingf indFot:u&rd:f&iEd):讲明:Integer string = Integer已qu已已匸已i: (sid);猎取-行数据的id号i (Iuser logimnaaager . d.elById(string)return mapping f indFoi:wdi7dL( suuerss);elsereturn mapping, f indForward( FPfailed);通过传id执行接口中的删除方法,返回成功或者失败。27 )在 checkSucess .。
32、 j sp 中页的是:shanchu“Ekstruts-conFig.xml :,一因此在jgHgjHggjjjHjjijjBI 中的 标签中上j:pe=F,requestFltype = ,struts action UserLoglnActlon,r讲明:Path= u /del M 讲明是 del. doparameter= delByld 执行 delByld JjH不使用验证框架作用域request因为我要它删除后还在本页不跳另个页而因此我写的是check, do也确实是本页的盘思 失贝攵跳到failed. do28)执行下看看能否删除(不报错),报错了在检査下看看哪里写错了,专门是。
33、 凶struZnF叫是否和自己起的名字是否样?要不确实是返回值的咨询题和在心中 哪里返回的是空值。29)找到#21IUserLogiiJanager. java在方法中写个更新的方法。DUhllC Li5t ngById(Integer id) 返回结果集,也是依照id更新,传id值。30)找到也UserLogiriflanger. ja.v*在方法里写个更新的方法:puljlic List gengById (Integer id) String hql=M fuom UserLogin where id=? M; L15t name = dao 工indEiyHq丄(hql, id); r。
34、eturn nare;讲明:那个方法的参数是主键id,通过dao调用f indByHql ()方法,参数hql是通过id査询UserLogin表 参数id是上面Integer id传过来的。31)找到由也返回相应的集合(集合里闻有用户名和密码八也写个更新的方法:public Actionforward gengByld (ActionHapping rtapping, kctionFornj form,HttpServlerequest; HttpSecvletP.espcnse response) throws Exception!Integer string = Integer.pdrse。
35、功I (rEQumst.gEtPaiamEtgr (3Ld);request SEt At tribute (pgengxinF I use r 1 o g i nmanage r gEng3yhd(str:ingn ; return nappingf indFomai:d(PucEg3):讲明:32)找到:B stnits-con.fi g. xml埼出更新的action|checkSucess. j sp讲明:W为厂中写的是:gengxin f34)测试下看看点击更新链接翌嗨 能否跳转到gengxin. jspo35)找到:e-EiIUserLogi nlilonager, j ava写个。
36、反选更新的方法:卫ubJLic void fxgengByld(UserLogin login);它是讲明:当在gang:-:in . j sp点击更新按钮的时候执行更新的方法。36) 找到VserLoguJager.java也写个反选更新的方法:public void f xgengBy Id. (User Login login) try dao updaXR (login.): catch (Exception, e)e.printStackTrace();讲明:把实体UserLogin和它的对象login作为参数传给fxgengByld () 利用dao调用 update (里面的参数。
37、为对象login) 进行语句的更新。37) 找到2 UserLoginAction.java写个反选更新的方法:public AccionForward I xgengBy Id (Acu lonMapp lng wapplngf Actio nF or w rorrn,HctpServletRequest request, HtcpServletResponse response) thr(n?55 Exception和按钮的代码留下以外)全部去掉,写下而的代码:ge n.gx i nc h.e nggo ng;fQrm讲明:利用-i* 在 action 属性 中写上 要去的 那 个 “/f。
38、xgeng do ”39)找到凶朮止-mfig灿11中的“让“-详卩9标签:再写个 action:p&=rri:equest:rr 115=rrgengxinForwn type = FFstrut5 action. Us=erLQginActionF,-c/fcir:xij&i7d讲明:Path 性与 相对应因此写/fxgeng 调用fxgengByld ()方法因此写parameter属性 不使用验证框架 作用域为request写个form (不用创建相应的Form) name为gengxinForm 再写标签跳转成功或者失贝攵的页而40)还在同StrutS-conFigxml |中再找到VfOE-说旳O 标签里面添加个gengxinForm:讲明:name属性与刚才创建的form的名字要完全样,type属性确实是粘贴pojo包中的UserLogin的全名。41)苦恼您执行边,看看能不能点击更新按钮后回到査询成功那个页而,而且数据也会有和应 的变动。42)假如有错误慢慢修改,欢迎大伙儿提出相应的总见和建议,我会虚心同总,感谢观贯!版权所有违者斩立决。