基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——删除和修改功能的后台逻辑处理_第1页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——删除和修改功能的后台逻辑处理_第2页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——删除和修改功能的后台逻辑处理_第3页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——删除和修改功能的后台逻辑处理_第4页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——删除和修改功能的后台逻辑处理_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

基于S2SH架构的课程设计实训教学示例项目客户关系管理CRM系统删除和修改功能的后台逻辑处理111完成删除和修改企业客户信息的后台数据访问方法的编程实现1、在ENTERPRISECUSTOMERINFOCRUDIMPLE数据访问类中添加删除企业客户信息的方法(1)修改ENTERPRISECUSTOMERINFOCRUDINTERFACE接口添加如下的方法PUBLICBOOLEANDELETEONEENTERPRISECUSTOMERINFOINTENTERPRISECUSTOMERID(2)在实现类ENTERPRISECUSTOMERINFOCRUDIMPLE中添加DELETEONEENTERPRISECUSTOMERINFO方法的具体实现代码PUBLICBOOLEANDELETEONEENTERPRISECUSTOMERINFOINTENTERPRISECUSTOMERIDSESSIONSESSIONNULLTRANSACTIONTXNULLTRY/(1)首先获得SESSION对象,但如果应用SESSIONFACTORYGETCURRENTSESSION则获得的SESSION为空对象。GETCURRENTSESSION方法获得当前的SESSION,而OPENSESSION方法是重新建立一个新的SESSION;在一个应用程序中,如果DAO层使用SPRING的HIBERNATE模板,通过SPRING来控制SESSION的生命周期,则首选GETCURRENTSESSION;而如果应用使用HIBERNATE的大多数应用程序需要某种形式的“上下文相关的”SESSION。/SESSIONSESSIONFACTORYOPENSESSION/(2)启动事务/TXSESSIONBEGINTRANSACTION/(3)完成具体的数据库访问操作/构建满足查询条件的HQL语句/STRINGDELETEHQLSTRING“DELETECOMPX1987BLUEDREAMCRMDAOPOENTERPRISECUSTOMERINFOPO“ASONEENTERPRISECUSTOMERINFOPO“WHEREONEENTERPRISECUSTOMERINFOPOENTERPRISECUSTOMER_ID“QUERYONEQUERYSESSIONCREATEQUERYDELETEHQLSTRINGONEQUERYSETINTEGER0,ENTERPRISECUSTOMERIDINTRETURNSTATERESULTONEQUERYEXECUTEUPDATE/(4)数据操作成功,则提交事务,否则将不会真正“修改”数据/TXCOMMITCATCHHIBERNATEEXCEPTIONHE/(4)数据操作失败,则取消提交(回滚)/IFTXNULLTXROLLBACKTHROWHEFINALLY/由于由HIBERNATE抛出的异常都视为不可以恢复的,因此应该确保在FINALLY代码块中调用CLOSE方法,以关闭掉SESSION。(5)数据访问操作完毕,一定要关闭SESSION/SESSIONCLOSERETURNTRUE2、在ENTERPRISECUSTOMERINFOCRUDIMPLE数据访问类中添加查询某个企业客户信息的方法(1)修改ENTERPRISECUSTOMERINFOCRUDINTERFACE接口添加如下的方法PUBLICENTERPRISECUSTOMERINFOPOSELECTONEENTERPRISECUSTOMERINFOINTENTERPRISECUSTOMERID(2)在实现类ENTERPRISECUSTOMERINFOCRUDIMPLE中添加SELECTONEENTERPRISECUSTOMERINFO方法的具体实现代码OVERRIDEPUBLICENTERPRISECUSTOMERINFOPOSELECTONEENTERPRISECUSTOMERINFOINTENTERPRISECUSTOMERIDSESSIONSESSIONNULLTRANSACTIONTXNULLENTERPRISECUSTOMERINFOPORETURNEDONEENTERPRISECUSTOMERINFOPONULLTRY/(1)首先获得SESSION对象,但如果应用SESSIONFACTORYGETCURRENTSESSION则获得的SESSION为空对象。GETCURRENTSESSION方法获得当前的SESSION,而OPENSESSION方法是重新建立一个新的SESSION;在一个应用程序中,如果DAO层使用SPRING的HIBERNATE模板,通过SPRING来控制SESSION的生命周期,则首选GETCURRENTSESSION;而如果应用使用HIBERNATE的大多数应用程序需要某种形式的“上下文相关的”SESSION。/SESSIONSESSIONFACTORYOPENSESSION/(2)启动事务/TXSESSIONBEGINTRANSACTION/(3)完成具体的数据库访问操作/RETURNEDONEENTERPRISECUSTOMERINFOPOENTERPRISECUSTOMERINFOPOSESSIONGETENTERPRISECUSTOMERINFOPOCLASS,ENTERPRISECUSTOMERID/(4)数据操作成功,则提交事务,否则将不会真正“修改”数据/TXCOMMITCATCHHIBERNATEEXCEPTIONHE/(4)数据操作失败,则取消提交(回滚)/IFTXNULLTXROLLBACKTHROWHEFINALLY/由于由HIBERNATE抛出的异常都视为不可以恢复的,因此应该确保在FINALLY代码块中调用CLOSE方法,以关闭掉SESSION。(5)数据访问操作完毕,一定要关闭SESSION/SESSIONCLOSERETURNRETURNEDONEENTERPRISECUSTOMERINFOPO3、在ENTERPRISECUSTOMERINFOCRUDIMPLE数据访问类中添加修改企业客户信息的方法(1)修改ENTERPRISECUSTOMERINFOCRUDINTERFACE接口添加如下的方法PUBLICBOOLEANUPDATEONEENTERPRISECUSTOMERINFOENTERPRISECUSTOMERINFOPOUPDATEDENTERPRISECUSTOMERINFOPO(2)在实现类ENTERPRISECUSTOMERINFOCRUDIMPLE中添加该UPDATEONEENTERPRISECUSTOMERINFO方法的具体实现代码PUBLICBOOLEANUPDATEONEENTERPRISECUSTOMERINFOENTERPRISECUSTOMERINFOPOUPDATEDENTERPRISECUSTOMERINFOPOSESSIONSESSIONNULLTRANSACTIONTXNULLTRY/(1)首先获得SESSION对象,但如果应用SESSIONFACTORYGETCURRENTSESSION则获得的SESSION为空对象。GETCURRENTSESSION方法获得当前的SESSION,而OPENSESSION方法是重新建立一个新的SESSION;在一个应用程序中,如果DAO层使用SPRING的HIBERNATE模板,通过SPRING来控制SESSION的生命周期,则首选GETCURRENTSESSION;而如果应用使用HIBERNATE的大多数应用程序需要某种形式的“上下文相关的”SESSION。/SESSIONSESSIONFACTORYOPENSESSION/(2)启动事务/TXSESSIONBEGINTRANSACTION/(3)完成具体的数据库访问操作/STRINGUPDATEHQLSTRING“UPDATECOMPX1987BLUEDREAMCRMDAOPOENTERPRISECUSTOMERINFOPO“ASONEENTERPRISECUSTOMERINFOPOSETONEENTERPRISECUSTOMERINFOPOCORPORATION_NAME,“ONEENTERPRISECUSTOMERINFOPOMANAGER_NAME,ONEENTERPRISECUSTOMERINFOPOADDRESS_INFO,“ONEENTERPRISECUSTOMERINFOPOBANK_NAME,ONEENTERPRISECUSTOMERINFOPOBANK_ACCOUNT,“ONEENTERPRISECUSTOMERINFOPOMOBILE_NUMBER,ONEENTERPRISECUSTOMERINFOPOPOSTCODE_INFO,“ONEENTERPRISECUSTOMERINFOPOWEBSITE_URLINFO,ONEENTERPRISECUSTOMERINFOPOCONTACTPERSON_ID,“ONEENTERPRISECUSTOMERINFOPOPROVINCES_NAME,ONEENTERPRISECUSTOMERINFOPOCITY_NAME,“ONEENTERPRISECUSTOMERINFOPOCOUNTY_NAME,ONEENTERPRISECUSTOMERINFOPOSUPERVISOR_NAME“WHEREONEENTERPRISECUSTOMERINFOPOENTERPRISECUSTOMER_ID“QUERYONEQUERYSESSIONCREATEQUERYUPDATEHQLSTRINGONEQUERYSETSTRING0,UPDATEDENTERPRISECUSTOMERINFOPOGETCORPORATION_NAMEONEQUERYSETSTRING1,UPDATEDENTERPRISECUSTOMERINFOPOGETMANAGER_NAMEONEQUERYSETSTRING2,UPDATEDENTERPRISECUSTOMERINFOPOGETADDRESS_INFOONEQUERYSETSTRING3,UPDATEDENTERPRISECUSTOMERINFOPOGETBANK_NAMEONEQUERYSETSTRING4,UPDATEDENTERPRISECUSTOMERINFOPOGETBANK_ACCOUNTONEQUERYSETSTRING5,UPDATEDENTERPRISECUSTOMERINFOPOGETMOBILE_NUMBERONEQUERYSETSTRING6,UPDATEDENTERPRISECUSTOMERINFOPOGETPOSTCODE_INFOONEQUERYSETSTRING7,UPDATEDENTERPRISECUSTOMERINFOPOGETWEBSITE_URLINFOONEQUERYSETINTEGER8,UPDATEDENTERPRISECUSTOMERINFOPOGETCONTACTPERSON_IDONEQUERYSETSTRING9,UPDATEDENTERPRISECUSTOMERINFOPOGETPROVINCES_NAMEONEQUERYSETSTRING10,UPDATEDENTERPRISECUSTOMERINFOPOGETCITY_NAMEONEQUERYSETSTRING11,UPDATEDENTERPRISECUSTOMERINFOPOGETCOUNTY_NAMEONEQUERYSETSTRING12,UPDATEDENTERPRISECUSTOMERINFOPOGETSUPERVISOR_NAMEONEQUERYSETINTEGER13,UPDATEDENTERPRISECUSTOMERINFOPOGETENTERPRISECUSTOMER_IDINTRETURNSTATERESULTONEQUERYEXECUTEUPDATE/(4)数据操作成功,则提交事务,否则将不会真正“修改”数据/TXCOMMITCATCHHIBERNATEEXCEPTIONHE/(4)数据操作失败,则取消提交(回滚)/IFTXNULLTXROLLBACKTHROWHEFINALLY/由于由HIBERNATE抛出的异常都视为不可以恢复的,因此应该确保在FINALLY代码块中调用CLOSE方法,以关闭掉SESSION。(5)数据访问操作完毕,一定要关闭SESSION/SESSIONCLOSERETURNTRUE112编程实现ENTERPRISECUSTOMERINFOMANAGEACTION类中的相关方法1、完善QUERYUPDATESOMEONEENTERPRISECUSTOMERINFO方法的代码PUBLICSTRINGQUERYUPDATESOMEONEENTERPRISECUSTOMERINFO/获得在查询参数字符串中所提交的待修改的企业客户信息的编号/STRINGUPDATEDENTERPRISECUSTOMERIDENTERPRISECUSTOMERINFOACTIONFORMGETENTERPRISECUSTOMER_ID/获得在查询参数字符串中所提交的目标页码/BYTETARGETPAGECOUNTERENTERPRISECUSTOMERINFOACTIONFORMGETTARGETPAGECOUNTER/获得在查询参数字符串中所提交的HQL语句中的WHERE条件子字符串/STRINGTARGETHQLWHERESTRINGENTERPRISECUSTOMERINFOACTIONFORMGETSQLQUERYWHERESTRING/调用通过SPRINGIOC获得的DAO对象实现对企业客户信息进行查询满足条件的数据/ENTERPRISECUSTOMERINFOPORETURNUPDATEDENTERPRISECUSTOMERINFOPOENTERPRISECUSTOMERINFOCRUDIMPLESELECTONEENTERPRISECUSTOMERINFOINTEGERPARSEINTUPDATEDENTERPRISECUSTOMERID/将待修改的企业客户信息对象保存到REQUESTSCOPE作用域中,在修改页面中显示该对象中的各个数据/HTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUESTREQUESTSETATTRIBUTE“ONEUPDATEDENTERPRISECUSTOMERINFOPO“,RETURNUPDATEDENTERPRISECUSTOMERINFOPO/将分页状态对象保存到REQUESTSCOPE作用域中,在页面中显示分页状态有关的各个数据/REQUESTSETATTRIBUTE“TARGETPAGECOUNTER“,TARGETPAGECOUNTER/将上次的查询条件保存到REQUESTSCOPE作用域中,有助于分页跳转继续保持相同的查询条件/REQUESTSETATTRIBUTE“SQLQUERYWHERESTRING“,TARGETHQLWHERESTRING/跳转到显示待修改的企业客户信息的表单页面/RETURN“SHOWUPDATESOMEONEENTERPRISECUSTOMERINFOFORM“2、完善DELETESOMEONEENTERPRISECUSTOMERINFO方法的代码PUBLICSTRINGDELETESOMEONEENTERPRISECUSTOMERINFO/获得在查询参数字符串中所提交的待删除的企业客户信息的编号/STRINGDELETEDENTERPRISECUSTOMERIDENTERPRISECUSTOMERINFOACTIONFORMGETENTERPRISECUSTOMER_ID/获得在查询参数字符串中所提交的目标页码/BYTETARGETPAGECOUNTERENTERPRISECUSTOMERINFOACTIONFORMGETTARGETPAGECOUNTER/获得在查询参数字符串中所提交的HQL语句中的WHERE条件子字符串/STRINGTARGETHQLWHERESTRINGENTERPRISECUSTOMERINFOACTIONFORMGETSQLQUERYWHERESTRING/由于在HQL语句字符串中可能也会出现URL中如下的特殊字符,因此需要对SQL语句进行转换。下面的代码实现将从客户端浏览器发送的SQL条件语句中的转义符“转换回“字符特殊字符的含义URL编码用来标志特定的文档位置23对特殊字符进行编码25/下面的代码实现对通过GET提交的SQL语句中的中文字符串进行编码转换以获得正确的中文字符串/TRYTARGETHQLWHERESTRINGNEWSTRINGTARGETHQLWHERESTRINGGETBYTES“ISO88591“,“GBK“CATCHUNSUPPORTEDENCODINGEXCEPTIONEEPRINTSTACKTRACE/调用通过SPRINGIOC获得的DAO对象实现对企业客户信息进行删除操作/BOOLEANRETURNSTATERESULTENTERPRISECUSTOMERINFOCRUDIMPLEDELETEONEENTERPRISECUSTOMERINFOINTEGERPARSEINTDELETEDENTERPRISECUSTOMERID/识别数据删除是否成功,如果出现错误,则跳转到错误显示页面中进行错误信息的显示/IFRETURNSTATERESULTHTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUESTREQUESTSETATTRIBUTE“ERRORTEXT“,“在删除企业客户信息时,系统出现了错误,请重新删除该企业客户的信息“RETURN“GOTOSHOWERRORINFO“/如果数据删除成功,则继续查询当前页码所对应的信息在页面中继续显示,下面的代码实现将目标页码缓存在分页状态的PO对象中/PAGESTATEPOONEPAGESTATEPONULLONEPAGESTATEPONEWPAGESTATEPOONEPAGESTATEPOSETCURRENTPAGENUMBERTARGETPAGECOUNTER/获得指定页数据ONEPAGESTATEPOSETONEPAGESIZEALLCONSTANTITEMSONEPAGESIZE_INDATAQUERY/调用通过SPRINGIOC获得的DAO对象实现对企业客户信息进行查询满足条件的数据/LISTRETURNALLENTERPRISECUSTOMERINFOPOENTERPRISECUSTOMERINFOCRUDIMPLESELECTSOMEENTERPRISECUSTOMERINFOTARGETHQLWHERESTRING,ONEPAGESTATEPO/将查询的结果保存到REQUESTSCOPE作用域中,实现在页面中显示输出数据/HTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUESTREQUESTSETATTRIBUTE“ALLENTERPRISECUSTOMERINFOPOINLIST“,RETURNALLENTERPRISECUSTOMERINFOPO/将分页状态对象保存到REQUESTSCOPE作用域中,在页面中显示分页状态有关的各个数据/REQUESTSETATTRIBUTE“ONEPAGESTATEPO“,ONEPAGESTATEPO/由于在HQL语句字符串中可能也会出现URL中如下的特殊字符,因此需要对SQL语句进行转换。将上次的查询条件保存到REQUESTSCOPE作用域中,有助于分页跳转继续保持相同的查询条件,同时还要将HQL语句中的“”进行转换,否则会作为HTTP协议中的特殊字符串处理字符特殊字符的含义URL编码用来标志特定的文档位置23对特殊字符进行编码25/跳转到查询结果的显示目标页面中显示输出所查询的结果信息/RETURN“QUERYENTERPRISECUSTOMERINFOSUCCESS“3、完善UPDATEENTERPRISECUSTOMERINFO方法的代码PUBLICSTRINGUPDATEENTERPRISECUSTOMERINFO/获得在查询参数字符串中所提交的目标页码/BYTETARGETPAGECOUNTERENTERPRISECUSTOMERINFOACTIONFORMGETTARGETPAGECOUNTER/获得在查询参数字符串中所提交的HQL语句中的WHERE条件子字符串/STRINGTARGETHQLWHERESTRINGENTERPRISECUSTOMERINFOACTIONFORMGETSQLQUERYWHERESTRING/由于在HQL语句字符串中可能也会出现URL中如下的特殊字符,因此需要对SQL语句进行转换。下面的代码实现将从客户端浏览器发送的SQL条件语句中的转义符“转换回“字符特殊字符的含义URL编码用来标志特定的文档位置23对特殊字符进行编码25/下面的代码实现对通过GET提交的SQL语句中的中文字符串进行编码转换以获得正确的中文字符串/TRYTARGETHQLWHERESTRINGNEWSTRINGTARGETHQLWHERESTRINGGETBYTES“ISO88591“,“GBK“CATCHUNSUPPORTEDENCODINGEXCEPTIONEEPRINTSTACKTRACE/构建出包装待修改的企业信息数据库表的PO对象/ENTERPRISECUSTOMERINFOPOUPDATEDENTERPRISECUSTOMERINFOPONEWENTERPRISECUSTOMERINFOPO/将缓存在表单对象中的各个成员属性值转存到PO对象中/UPDATEDENTERPRISECUSTOMERINFOPOSETCORPORATION_NAMEENTERPRISECUSTOMERINFOACTIONFORMGETCORPORATION_NAMEUPDATEDENTERPRISECUSTOMERINFOPOSETMANAGER_NAMEENTERPRISECUSTOMERINFOACTIONFORMGETMANAGER_NAMEUPDATEDENTERPRISECUSTOMERINFOPOSETADDRESS_INFOENTERPRISECUSTOMERINFOACTIONFORMGETADDRESS_INFOUPDATEDENTERPRISECUSTOMERINFOPOSETBANK_NAMEENTERPRISECUSTOMERINFOACTIONFORMGETBANK_NAMEUPDATEDENTERPRISECUSTOMERINFOPOSETBANK_ACCOUNTENTERPRISECUSTOMERINFOACTIONFORMGETBANK_ACCOUNTUPDATEDENTERPRISECUSTOMERINFOPOSETMOBILE_NUMBERENTERPRISECUSTOMERINFOACTIONFORMGETMOBILE_NUMBERUPDATEDENTERPRISECUSTOMERINFOPOSETPOSTCODE_INFOENTERPRISECUSTOMERINFOACTIONFORMGETPOSTCODE_INFOUPDATEDENTERPRISECUSTOMERINFOPOSETWEBSITE_URLINFOENTERPRISECUSTOMERINFOACTIONFORMGETWEBSITE_URLINFO/下面的代码识别表单中所提交的联系人编号是否为空,如果为空,则不将字符串转换为数字;只有在字符串为有效的数据时,再进行转换。/IFENTERPRISECUSTOMERINFOACTIONFORMGETCONTACTPERSON_IDNULL|“EQUALSENTERPRISECUSTOMERINFOACTIONFORMGETCONTACTPERSON_IDUPDATEDENTERPRISECUSTOMERINFOPOSETCONTACTPERSON_ID0ELSEUPDATEDENTERPRISECUSTOMERINFOPOSETCONTACTPERSON_IDINTEGERPARSEINTENTERPRISECUSTOMERINFOACTIONFORMGETCONTACTPERSON_IDUPDATEDENTERPRISECUSTOMERINFOPOSETPROVINCES_NAMEENTERPRISECUSTOMERINFOACTIONFORMGETPROVINCES_NAMEUPDATEDENTERPRISECUSTOMERINFOPOSETCITY_NAMEENTERPRISECUSTOMERINFOACTIONFORMGETCITY_NAMEUPDATEDENTERPRISECUSTOMERINFOPOSETCOUNTY_NAMEENTERPRISECUSTOMERINFOACTIONFORMGETCOUNTY_NAMEUPDATEDENTERPRISECUSTOMERINFOPOSETSUPERVISOR_NAMEENTERPRISECUSTOMERINFOACTIONFORMGETSUPERVISOR_NAME/获得在修改客户信息表单中通过隐藏表单成员传递的客户信息编号,并缓存在PO对象中/UPDATEDENTERPRISECUSTOMERINFOPOSETENTERPRISECUSTOMER_IDINTEGERPARSEINTENTERPRISECUSTOMERINFOACTIONFORMGETENTERPRISECUSTOMER_ID/调用通过SPRINGIOC获得的DAO对象实现对企业客户信息进行修改操作/BOOLEANRETURNSTATERESULTENTERPRISECUSTOMERINFOCRUDIMPLEUPDATEONEENTERPRISECUSTOMERINFOUPDATEDENTERPRISECUSTOMERINFOPO/识别数据修改是否成功,如果出现错误,则跳转到错误显示页面中进行错误信息的显示/IFRETURNSTATERESULTHTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUESTREQUESTSETATTRIBUTE“ERRORTEXT“,“在修改企业客户信息时,系统出现了错误,请重新修改该企业客户的信息“RETURN“GOTOSHOWERRORINFO“/如果数据修改成功,则继续查询当前页码所对应的信息在页面中继续显示,下面的代码实现将目标页码缓存在分页状态的PO对象中/PAGESTATEPOONEPAGESTATEPONULLONEPAGESTATEPONEWPAGESTATEPOONEPAGESTATEPOSETCURRENTPAGENUMBERTARGETPAGECOUNTER/获得指定页数据ONEPAGESTATEPOSETONEPAGESIZEALLCONSTANTITEMSONEPAGESIZE_INDATAQUERY/调用通过SPRINGIOC获得的DAO对象实现对企业客户信息进行查询满足条件的数据/LISTRETURNALLENTERPRISECUSTOMERINFOPOENTERPRISECUSTOMERINFOCRUDIMPLESELECTSOMEENTERPRISECUSTOMERINFOTARGETHQLWHERESTRING,ONEPAGESTATEPO/将查询的结果保存到REQUESTSCOPE作用域中,实现在页面中显示输出数据/HTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUESTREQUESTSETATTRIBUTE“ALLENTERPRISECUSTOMERINFOPOINLIST“,RETURNALLENTERPRISECUSTOMERINFOPO/将分页状态对象保存到REQUESTSCOPE作用域中,在页面中显示分页状态有关的各个数据/REQUESTSETATTRIBUTE“ONEPAGESTATEPO“,ONEPAGESTATEPO/由于在HQL语句字符串中可能也会出现URL中如下的特殊字符,因此需要对SQL语句进行转换。将上次的查询条件保存到REQUESTSCOPE作用域中,有助于分页跳转继续保持相同的查询条件,同时还要将HQL语句中的“”进行转换,否则会作为HTTP协议中的特殊字符串处理字符特殊字符的含义URL编码用来标志特定的文档位置23对特殊字符进行编码25/跳转到查询结果的显示目标页面中显示输出所查询的结果信息/RETURN“QUERYENTERPRISECUSTOMERINFOSUCCESS“4、对删除和修改企业客户信息进行功能测试(1)修改对其中的第1条数据进行修改,目前的总记录数量为9条。将该企业客户的“法人姓名”由“张”改变为“张三”,然后再提交修改的表单。系统再次查询修改后的结果信息,“法人姓名”已经发生了改变。(2)删除选中第1条记录,并删除它最终的记录总数由9条改变为8条。113完成删除和修改个人客户信息的后台数据访问方法的编程实现1、在PERSONALCUSTOMERINFOCRUDIMPLE数据访问类中添加删除个人客户信息的方法(1)修改PERSONALCUSTOMERINFOCRUDINTERFACE接口添加如下的方法PUBLICBOOLEANDELETEONEPERSONALCUSTOMERINFOINTPERSONALCUSTOMERID(2)在实现类PERSONALCUSTOMERINFOCRUDIMPLE中添加该DELETEONEPERSONALCUSTOMERINFO方法的具体实现代码PUBLICBOOLEANDELETEONEPERSONALCUSTOMERINFOINTPERSONALCUSTOMERIDSESSIONSESSIONNULLTRANSACTIONTXNULLTRY/(1)首先获得SESSION对象,但如果应用SESSIONFACTORYGETCURRENTSESSION则获得的SESSION为空对象。GETCURRENTSESSION方法获得当前的SESSION,而OPENSESSION方法是重新建立一个新的SESSION;在一个应用程序中,如果DAO层使用SPRING的HIBERNATE模板,通过SPRING来控制SESSION的生命周期,则首选GETCURRENTSESSION;而如果应用使用HIBERNATE的大多数应用程序需要某种形式的“上下文相关的”SESSION。/SESSIONSESSIONFACTORYOPENSESSION/(2)启动事务/TXSESSIONBEGINTRANSACTION/(3)完成具体的数据库访问操作/构建满足查询条件的HQL语句/STRINGDELETEHQLSTRING“DELETECOMPX1987BLUEDREAMCRMDAOPOPERSONALCUSTOMERINFOPO“ASONEPERSONALCUSTOMERINFOPOWHEREONEPERSONALCUSTOMERINFOPOCUSTOMER_ID“QUERYONEQUERYSESSIONCREATEQUERYDELETEHQLSTRINGONEQUERYSETINTEGER0,PERSONALCUSTOMERIDINTRETURNSTATERESULTONEQUERYEXECUTEUPDATE/(4)数据操作成功,则提交事务,否则将不会真正“修改”数据/TXCOMMITCATCHHIBERNATEEXCEPTIONHE/(4)数据操作失败,则取消提交(回滚)/IFTXNULLTXROLLBACKTHROWHEFINALLY/由于由HIBERNATE抛出的异常都视为不可以恢复的,因此应该确保在FINALLY代码块中调用CLOSE方法,以关闭掉SESSION。(5)数据访问操作完毕,一定要关闭SESSION/SESSIONCLOSERETURNTRUE2、在PERSONALCUSTOMERINFOCRUDIMPLE数据访问类中添加查询某个个人客户信息的方法(1)修改PERSONALCUSTOMERINFOCRUDINTERFACE接口添加如下的方法PUBLICPERSONALCUSTOMERINFOPOSELECTONEPERSONALCUSTOMERINFOINTPERSONALCUSTOMERID(2)在实现类PERSONALCUSTOMERINFOCRUDIMPLE中添加SELECTONEPERSONALCUSTOMERINFO方法的具体实现代码OVERRIDEPUBLICPERSONALCUSTOMERINFOPOSELECTONEPERSONALCUSTOMERINFOINTPERSONALCUSTOMERIDSESSIONSESSIONNULLTRANSACTIONTXNULLPERSONALCUSTOMERINFOPORETURNEDONEPERSONALCUSTOMERINFOPONULLTRY/(1)首先获得SESSION对象,但如果应用SESSIONFACTORYGETCURRENTSESSION则获得的SESSION为空对象。GETCURRENTSESSION方法获得当前的SESSION,而OPENSESSION方法是重新建立一个新的SESSION;在一个应用程序中,如果DAO层使用SPRING的HIBERNATE模板,通过SPRING来控制SESSION的生命周期,则首选GETCURRENTSESSION;而如果应用使用HIBERNATE的大多数应用程序需要某种形式的“上下文相关的”SESSION。/SESSIONSESSIONFACTORYOPENSESSION/(2)启动事务/TXSESSIONBEGINTRANSACTION/(3)完成具体的数据库访问操作/RETURNEDONEPERSONALCUSTOMERINFOPOPERSONALCUSTOMERINFOPOSESSIONGETPERSONALCUSTOMERINFOPOCLASS,PERSONALCUSTOMERID/(4)数据操作成功,则提交事务,否则将不会真正“修改”数据/TXCOMMITCATCHHIBERNATEEXCEPTIONHE/(4)数据操作失败,则取消提交(回滚)/IFTXNULLTXROLLBACKTHROWHEFINALLY/由于由HIBERNATE抛出的异常都视为不可以恢复的,因此应该确保在FINALLY代码块中调用CLOSE方法,以关闭掉SESSION。(5)数据访问操作完毕,一定要关闭SESSION/SESSIONCLOSERETURNRETURNEDONEPERSONALCUSTOMERINFOPO3、在PERSONALCUSTOMERINFOCRUDIMPLE数据访问类中添加修改个人客户信息的方法(1)修改PERSONALCUSTOMERINFOCRUDINTERFACE接口添加如下的方法PUBLICBOOLEANUPDATEONEPERSONALCUSTOMERINFOPERSONALCUSTOMERINFOPOUPDATEDPERSONALCUSTOMERINFOPO(2)在实现类PERSONALCUSTOMERINFOCRUDIMPLE中添加该UPDATEONEPERSONALCUSTOMERINFO方法的具体实现代码PUBLICBOOLEANUPDATEONEPERSONALCUSTOMERINFOPERSONALCUSTOMERINFOPOUPDATEDPERSONALCUSTOMERINFOPOSESSIONSESSIONNULLTRANSACTIONTXNULLTRY/(1)首先获得SESSION对象,但如果应用SESSIONFACTORYGETCURRENTSESSION则获得的SESSION为空对象。GETCURRENTSESSION方法获得当前的SESSION,而OPENSESSION方法是重新建立一个新的SESSION;在一个应用程序中,如果DAO层使用SPRING的HIBERNATE模板,通过SPRING来控制SESSION的生命周期,则首选GETCURRENTSESSION;而如果应用使用HIBERNATE的大多数应用程序需要某种形式的“上下文相关的”SESSION。/SESSIONSESSIONFACTORYOPENSESSION/(2)启动事务/TXSESSIONBEGINTRANSACTION/(3)完成具体的数据库访问操作/STRINGUPDATEHQLSTRING“UPDATECOMPX1987BLUEDREAMCRMDAOPOPERSONALCUSTOMERINFOPO“ASONEPERSONALCUSTOMERINFOPOSETONEPERSONALCUSTOMERINFOPOCUSTOMER_NAME,“ONEPERSONALCUSTOMERINFOPOCUSTOMER_SEX,ONEPERSONALCUSTOMERINFOPOCUSTOMER_AGE,“ONEPERSONALCUSTOMERINFOPOCUSTOMER_ISVALID,ONEPERSONALCUSTOMERINFOPOCUSTOMER_OCCUPATION,“ONEPERSONALCUSTOMERINFOPOCUSTOMER_UNITSIZE,ONEPERSONALCUSTOMERINFOPOCUSTOMER_UNITNAME,“ONEPERSONALCUSTOMERINFOPOCUSTOMER_UNITINSTRUCTIONTEXT,ONEPERSONALCUSTOMERINFOPOCUSTOMER_IMPORTANTLEVEL,“ONEPERSONALCUSTOMERINFOPOCUSTOMER_LEVEL,ONEPERSONALCUSTOMERINFOPOCUSTOMER_EMAIL,“ONEPERSONALCUSTOMERINFOPOCUSTOMER_POSTCODE,ONEPERSONALCUSTOMERINFOPOCUSTOMER_WORKADDRESS,“ONEPERSONALCUSTOMERINFOPOCUSTOMER_MOBILENUMBER,ONEPERSONALCUSTOMERINFOPOCUSTOMER_UPDATEDATE“WHEREONEPERSONALCUSTOMERINFOPOCUSTOMER_ID“QUERYONEQUERYSESSIONCREATEQUERYUPDATEHQLSTRINGONEQUERYSETSTRING0,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_NAMEONEQUERYSETBYTE1,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_SEXONEQUERYSETSHORT2,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_AGEONEQUERYSETBYTE3,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_ISVALIDONEQUERYSETSTRING4,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_OCCUPATIONONEQUERYSETSTRING5,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_UNITSIZEONEQUERYSETSTRING6,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_UNITNAMEONEQUERYSETSTRING7,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_UNITINSTRUCTIONTEXTONEQUERYSETINTEGER8,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_IMPORTANTLEVELONEQUERYSETBYTE9,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_LEVELONEQUERYSETSTRING10,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_EMAILONEQUERYSETSTRING11,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_POSTCODEONEQUERYSETSTRING12,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_WORKADDRESSONEQUERYSETSTRING13,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_MOBILENUMBERONEQUERYSETDATE14,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_UPDATEDATEONEQUERYSETINTEGER15,UPDATEDPERSONALCUSTOMERINFOPOGETCUSTOMER_IDINTRETURNSTATERESULTONEQUERYEXECUTEUPDATE/(4)数据操作成功,则提交事务,否则将不会真正“修改”数据/TXCOMMITCATCHHIBERNATEEXCEPTIONHE/(4)数据操作失败,则取消提交(回滚)/IFTXNULLTXROLLBACKTHROWHEFINALLY/由于由HIBERNATE抛出的异常都视为不可以恢复的,因此应该确保在FINALLY代码块中调用CLOSE方法,以关闭掉SESSION。(5)数据访问操作完毕,一定要关闭SESSION/SESSIONCLOSERETURNTRUE114编程实现PERSONALCUSTOMERINFOMANAGEACTION类中的相关方法1、完善QUERYUPDATESOMEONEPERSONALCUSTOMERINFO方法的代码PUBLICSTRINGQUERYUPDATESOMEONEPERSONALCUSTOMERINFO/获得在查询参数字符串中所提交的待修改的企业客户信息的编号/STRINGUPDATEDPERSONALCUSTOMERIDPERSONALCUSTOMERINFOACTIONFORMGETCUSTOMER_ID/获得在查询参数字符串中所提交的目标页码/BYTETARGETPAGECOUNTERPERSONALCUSTOMERINFOACTION

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论