基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——完成企业客户信息的后台数据访问功能_第1页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——完成企业客户信息的后台数据访问功能_第2页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——完成企业客户信息的后台数据访问功能_第3页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——完成企业客户信息的后台数据访问功能_第4页
基于s2sh架构的课程设计实训教学示例项目——《客户关系管理crm系统》——完成企业客户信息的后台数据访问功能_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

基于S2SH架构的课程设计实训教学示例项目客户关系管理CRM系统完成企业客户信息的后台数据访问功能111完成企业客户信息的后台数据访问1、新建ENTERPRISECUSTOMER_INFO企业客户信息数据库表(1)数据库表结构(2)对应的SQL语句CREATETABLEENTERPRISECUSTOMER_INFOENTERPRISECUSTOMER_IDINT10NOTNULLCOMMENT主键编号ID,CORPORATION_NAMEVARCHAR50NOTNULLCOMMENT企业名称,MANAGER_NAMEVARCHAR50NOTNULLCOMMENT法人代表姓名,ADDRESS_INFOVARCHAR50NOTNULLCOMMENT法定地址,BANK_NAMEVARCHAR50NOTNULLCOMMENT开户银行,BANK_ACCOUNTVARCHAR50NOTNULLCOMMENT银行帐号,MOBILE_NUMBERVARCHAR20NOTNULLCOMMENT联系电话,POSTCODE_INFOVARCHAR10NOTNULLCOMMENT邮政编码,WEBSITE_URLINFOVARCHAR100NOTNULLCOMMENT企业网址,CONTACTPERSON_IDINT10NOTNULLCOMMENT联系人编号,PROVINCES_NAMEVARCHAR20NOTNULLCOMMENT企业所在的省名,CITY_NAMEVARCHAR20NOTNULLCOMMENT企业所在的省中的一级城市名,COUNTY_NAMEVARCHAR20NOTNULLCOMMENT企业所在的二级市及县名,SUPERVISOR_NAMEVARCHAR255NOTNULLCOMMENT上级主管部门,PRIMARYKEYENTERPRISECUSTOMER_IDENGINEINNODBDEFAULTCHARSETGB2312INSERTINTOENTERPRISECUSTOMER_INFOVALUES933943028,中科蓝梦电子技术有限公司,张大名,北京市海淀区海淀大街52号,北京市北京银行,0123456789012100080,HTTP/WWWABCCOM/,1,北京,北京,北京市,中国科学院行管局2、针对ENTERPRISECUSTOMER_INFO数据库中的各个字段提供对应的PO类(1)类名称为ENTERPRISECUSTOMERINFOPO,包名称为COMPX1987BLUEDREAMCRMDAOPO(2)在该PO类中添加相关的成员属性,并提供GET/SET方法PRIVATEINTENTERPRISECUSTOMER_ID/主键编号IDPRIVATESTRINGCORPORATION_NAMENULL/企业名称PRIVATESTRINGMANAGER_NAMENULL/法人代表姓名PRIVATESTRINGADDRESS_INFONULL/法定地址PRIVATESTRINGBANK_NAMENULL/开户银行PRIVATESTRINGBANK_ACCOUNTNULL/银行帐号PRIVATESTRINGMOBILE_NUMBERNULL/联系电话PRIVATESTRINGPOSTCODE_INFONULL/邮政编码PRIVATESTRINGWEBSITE_URLINFONULL/企业网址PRIVATEINTCONTACTPERSON_ID/联系人编号PRIVATESTRINGPROVINCES_NAMENULL/企业所在的省名PRIVATESTRINGCITY_NAMENULL/企业所在的省中的一级城市名PRIVATESTRINGCOUNTY_NAMENULL/企业所在的二级市及县名PRIVATESTRINGSUPERVISOR_NAMENULL/上级主管部门(3)再提供HASHCODE和EQUALS方法(4)提供如下的方法实现对比较长的成员属性提供简要的描述字符串PUBLICSTRINGGETCORPORATION_BRIEFNAMEIFCORPORATION_NAMELENGTH4RETURNCORPORATION_NAMESUBSTRING0,4“ELSERETURNCORPORATION_NAMEPUBLICSTRINGGETADDRESS_BRIEFINFOIFADDRESS_INFOLENGTH7RETURNADDRESS_INFOSUBSTRING0,7“ELSERETURNADDRESS_INFOPUBLICSTRINGGETBANK_BRIEFNAMEIFBANK_NAMELENGTH5RETURNBANK_NAMESUBSTRING0,5“ELSERETURNBANK_NAME3、为ENTERPRISECUSTOMERINFOPO类和ENTERPRISECUSTOMER_INFO数据库表提供对应的O/RMAPPING映射配置文件(1)在项目的SRC目录中新建ENTERPRISECUSTOMERINFOPOHBMXML文件(2)设计该映射文件的内容4、在HIBERNATECFGXML中引用该ENTERPRISECUSTOMERINFOPOHBMXML文件5、测试ENTERPRISECUSTOMERINFOPO和ENTERPRISECUSTOMER_INFO数据库表的映射配置是否正确部署和启动服务器,观察在控制台中是否有异常抛出信息,同时监控在控制台中是否出现如下的状态提示信息112为ENTERPRISECUSTOMER_INFO数据库表设计相关的数据访问的接口和实现类1、提供一个包装分页查询的状态信息的PAGESTATEPO类(1)类名称为PAGESTATEPO,包名称为COMPX1987BLUEDREAMCRMDAOPO(2)添加如下的成员属性和提供GET/SET方法PRIVATEINTCURRENTPAGENUMBER/当前页的页码PRIVATEBOOLEANFIRSTPAGE/是否是首页(第一页),第一页页码为1PRIVATEBOOLEANLASTPAGE/是否是最后一页PRIVATEBOOLEANHASNEXTPAGE/是否有下一页PRIVATEBOOLEANHASPREVIOUSPAGE/是否有上一页PRIVATEINTLASTPAGENUMBER/获取最后一页页码,也就是总页数PRIVATEINTTOTALNUMBEROFELEMENTS/总的数据条目数量,0表示没有数据PRIVATEINTTHISPAGEFIRSTELEMENTNUMBER/获取当前页的首条数据的行编码(从0开始计数)PRIVATEINTTHISPAGELASTELEMENTNUMBER/获取当前页的末条数据的行编码(从0开始计数)PRIVATEINTNEXTPAGENUMBER/获取下一页编码PRIVATEINTPREVIOUSPAGENUMBER/获取上一页编码PRIVATEINTONEPAGESIZE/每一页显示的条目数PRIVATEINTTOTALPAGENUMBER/总页数PRIVATEBYTESOMEONEORDERMETHOD/重新按照某种排序方式再次查询数据(3)再提供一个根据记录总数获得分页中的其他属性值的处理方法SETPAGESTATEPOMEMBERPROPERTY,下面为PAGESTATEPO类的最终的代码示例PACKAGECOMPX1987BLUEDREAMCRMDAOPOPUBLICCLASSPAGESTATEPOPUBLICBOOLEANISFIRSTPAGERETURNFIRSTPAGEPUBLICVOIDSETFIRSTPAGEBOOLEANFIRSTPAGETHISFIRSTPAGEFIRSTPAGEPUBLICBOOLEANISLASTPAGERETURNLASTPAGEPUBLICVOIDSETLASTPAGEBOOLEANLASTPAGETHISLASTPAGELASTPAGEPUBLICBOOLEANISHASNEXTPAGERETURNHASNEXTPAGEPUBLICVOIDSETHASNEXTPAGEBOOLEANHASNEXTPAGETHISHASNEXTPAGEHASNEXTPAGEPUBLICBOOLEANISHASPREVIOUSPAGERETURNHASPREVIOUSPAGEPUBLICVOIDSETHASPREVIOUSPAGEBOOLEANHASPREVIOUSPAGETHISHASPREVIOUSPAGEHASPREVIOUSPAGEPUBLICINTGETLASTPAGENUMBERRETURNLASTPAGENUMBERPUBLICVOIDSETLASTPAGENUMBERINTLASTPAGENUMBERTHISLASTPAGENUMBERLASTPAGENUMBERPUBLICINTGETTOTALNUMBEROFELEMENTSRETURNTOTALNUMBEROFELEMENTSPUBLICVOIDSETTOTALNUMBEROFELEMENTSINTTOTALNUMBEROFELEMENTSTHISTOTALNUMBEROFELEMENTSTOTALNUMBEROFELEMENTSPUBLICINTGETTHISPAGEFIRSTELEMENTNUMBERRETURNTHISPAGEFIRSTELEMENTNUMBERPUBLICVOIDSETTHISPAGEFIRSTELEMENTNUMBERINTTHISPAGEFIRSTELEMENTNUMBERTHISTHISPAGEFIRSTELEMENTNUMBERTHISPAGEFIRSTELEMENTNUMBERPUBLICINTGETTHISPAGELASTELEMENTNUMBERRETURNTHISPAGELASTELEMENTNUMBERPUBLICVOIDSETTHISPAGELASTELEMENTNUMBERINTTHISPAGELASTELEMENTNUMBERTHISTHISPAGELASTELEMENTNUMBERTHISPAGELASTELEMENTNUMBERPUBLICINTGETNEXTPAGENUMBERRETURNNEXTPAGENUMBERPUBLICVOIDSETNEXTPAGENUMBERINTNEXTPAGENUMBERTHISNEXTPAGENUMBERNEXTPAGENUMBERPUBLICINTGETPREVIOUSPAGENUMBERRETURNPREVIOUSPAGENUMBERPUBLICVOIDSETPREVIOUSPAGENUMBERINTPREVIOUSPAGENUMBERTHISPREVIOUSPAGENUMBERPREVIOUSPAGENUMBERPUBLICINTGETONEPAGESIZERETURNONEPAGESIZEPUBLICVOIDSETONEPAGESIZEINTONEPAGESIZETHISONEPAGESIZEONEPAGESIZEPUBLICINTGETTOTALPAGENUMBERRETURNTOTALPAGENUMBERPUBLICVOIDSETTOTALPAGENUMBERINTTOTALPAGENUMBERTHISTOTALPAGENUMBERTOTALPAGENUMBERPUBLICINTGETCURRENTPAGENUMBERRETURNCURRENTPAGENUMBERPUBLICVOIDSETCURRENTPAGENUMBERINTCURRENTPAGENUMBERTHISCURRENTPAGENUMBERCURRENTPAGENUMBERPUBLICBYTEGETSOMEONEORDERMETHODRETURNSOMEONEORDERMETHODPUBLICVOIDSETSOMEONEORDERMETHODBYTESOMEONEORDERMETHODTHISSOMEONEORDERMETHODSOMEONEORDERMETHODPUBLICPAGESTATEPO/下面的方法是根据记录总数获得分页中的其他属性值/PUBLICVOIDSETPAGESTATEPOMEMBERPROPERTYINTTOTALNUMBEROFELEMENTSIFTOTALNUMBEROFELEMENTSONEPAGESIZE0/如果记录总数为每页的整倍数,则计算出其总页数TOTALPAGENUMBERTOTALNUMBEROFELEMENTS/ONEPAGESIZEELSE/如果有不满一页的,则页数加一,并且计算出其总页数TOTALPAGENUMBERTOTALNUMBEROFELEMENTS/ONEPAGESIZE1/当前页是否是首页(第一页)SETFIRSTPAGECURRENTPAGENUMBER1TRUEFALSEIFCURRENTPAGENUMBERTOTALPAGENUMBER/如果当前页数不等于总页数,则表明当前页不是最后一页SETLASTPAGEFALSEELSE/如果当前页数等于总页数,则表明当前页是最后一页SETLASTPAGETRUE/如果当前页数小于总页数,则表明仍然有下一页IFCURRENTPAGENUMBERSELECTALLENTERPRISECUSTOMERINFOPAGESTATEPOONEPAGESTATEPO/带条件的分页查询部分企业客户信息/PUBLICLISTSELECTSOMEENTERPRISECUSTOMERINFOSTRINGSQLWHERESTRING,PAGESTATEPOONEPAGESTATEPO/按照ID号码查询某个特定的企业客户信息/PUBLICENTERPRISECUSTOMERINFOPOSELECTONEENTERPRISECUSTOMERINFOINTENTERPRISECUSTOMERID/添加一个企业客户信息/PUBLICBOOLEANINSERTONEENTERPRISECUSTOMERINFOENTERPRISECUSTOMERINFOPOONEENTERPRISECUSTOMERINFOPO3、为ENTERPRISECUSTOMERINFOCRUDINTERFACE提供一个实现类ENTERPRISECUSTOMERINFOCRUDIMPLE(1)类名称为ENTERPRISECUSTOMERINFOCRUDIMPLE,包名称为COMPX1987BLUEDREAMCRMDAOIMPLE,并且实现ENTERPRISECUSTOMERINFOCRUDINTERFACE接口(2)编程该DAO类中的相关方法PACKAGECOMPX1987BLUEDREAMCRMDAOIMPLEIMPORTJAVAUTILLISTIMPORTORGHIBERNATEHIBERNATEEXCEPTIONIMPORTORGHIBERNATEQUERYIMPORTORGHIBERNATESESSIONIMPORTORGHIBERNATESESSIONFACTORYIMPORTORGHIBERNATETRANSACTIONIMPORTCOMPX1987BLUEDREAMCRMDAOINTERENTERPRISECUSTOMERINFOCRUDINTERFACEIMPORTCOMPX1987BLUEDREAMCRMDAOPOENTERPRISECUSTOMERINFOPOIMPORTCOMPX1987BLUEDREAMCRMDAOPOPAGESTATEPOPUBLICCLASSENTERPRISECUSTOMERINFOCRUDIMPLEIMPLEMENTSENTERPRISECUSTOMERINFOCRUDINTERFACEPRIVATESESSIONFACTORYSESSIONFACTORYPUBLICVOIDSETSESSIONFACTORYSESSIONFACTORYLOCALSESSIONFACTORYBEANTHISSESSIONFACTORYLOCALSESSIONFACTORYBEANPUBLICENTERPRISECUSTOMERINFOCRUDIMPLESUPEROVERRIDEPUBLICBOOLEANINSERTONEENTERPRISECUSTOMERINFOENTERPRISECUSTOMERINFOPOONEENTERPRISECUSTOMERINFOPOSESSIONSESSIONNULLTRANSACTIONTXNULLTRY/(1)首先获得SESSION对象,但如果应用SESSIONFACTORYGETCURRENTSESSION则获得的SESSION为空对象。GETCURRENTSESSION方法获得当前的SESSION,而OPENSESSION方法是重新建立一个新的SESSION;在一个应用程序中,如果DAO层使用SPRING的HIBERNATE模板,通过SPRING来控制SESSION的生命周期,则首选GETCURRENTSESSION;而如果应用使用HIBERNATE的大多数应用程序需要某种形式的“上下文相关的”SESSION。/SESSIONSESSIONFACTORYOPENSESSION/(2)启动事务/TXSESSIONBEGINTRANSACTION/(3)完成具体的数据库访问操作/SESSIONSAVEONEENTERPRISECUSTOMERINFOPO/(4)数据操作成功,则提交事务,否则将不会真正“修改”数据/TXCOMMITCATCHHIBERNATEEXCEPTIONHE/(4)数据操作失败,则取消提交(回滚)/IFTXNULLTXROLLBACKTHROWHEFINALLY/由于由HIBERNATE抛出的异常都视为不可以恢复的,因此应该确保在FINALLY代码块中调用CLOSE方法,以关闭掉SESSION。(5)数据访问操作完毕,一定要关闭SESSION/SESSIONCLOSERETURNTRUEOVERRIDEPUBLICLISTSELECTALLENTERPRISECUSTOMERINFOPAGESTATEPOONEPAGESTATEPOSESSIONSESSIONNULLTRANSACTIONTXNULLLISTRETURNALLENTERPRISECUSTOMERINFOPOSNULLTRY/(1)首先获得SESSION对象,但如果应用SESSIONFACTORYGETCURRENTSESSION则获得的SESSION为空对象。GETCURRENTSESSION方法获得当前的SESSION,而OPENSESSION方法是重新建立一个新的SESSION;在一个应用程序中,如果DAO层使用SPRING的HIBERNATE模板,通过SPRING来控制SESSION的生命周期,则首选GETCURRENTSESSION;而如果应用使用HIBERNATE的大多数应用程序需要某种形式的“上下文相关的”SESSION。/SESSIONSESSIONFACTORYOPENSESSION/(2)启动事务/TXSESSIONBEGINTRANSACTION/(3)完成具体的数据库访问操作/首先获得满足查询条件的记录总数TOTALCOUNTER/QUERYONEQUERYSESSIONCREATEQUERY“SELECTCOUNTFROMCOMPX1987BLUEDREAMCRMDAOPOENTERPRISECUSTOMERINFOPO“LONGOBJECTCOUNTERLONGONEQUERYUNIQUERESULTLONGTOTALCOUNTEROBJECTCOUNTERLONGVALUE/根据所获得的满足查询条件的记录总数,动态获得分页状态PO对象中的其它属性值(通过调用SETPAGESTATEPOMEMBERPROPERTY方法)/ONEPAGESTATEPOSETPAGESTATEPOMEMBERPROPERTYINTTOTALCOUNTER/构建满足查询条件的HQL语句/STRINGQUERYHQLSTRING“FROMCOMPX1987BLUEDREAMCRMDAOPOENTERPRISECUSTOMERINFOPO“/创建出包装该HQL语句的QUERY接口对象/ONEQUERYSESSIONCREATEQUERYQUERYHQLSTRING/设置分页查询过程中的相关的两个控制参数(开始记录号和返回的每页数量)/ONEQUERYSETFIRSTRESULTONEPAGESTATEPOGETTHISPAGEFIRSTELEMENTNUMBERONEQUERYSETMAXRESULTSONEPAGESTATEPOGETONEPAGESIZE/查询出满足条件的某一页的数据,并返回该页数据(注意不是返回所有的数据)/RETURNALLENTERPRISECUSTOMERINFOPOSONEQUERYLIST/(4)数据操作成功,则提交事务,否则将不会真正“修改”数据/TXCOMMITCATCHHIBERNATEEXCEPTIONHE/(4)数据操作失败,则取消提交(回滚)/IFTXNULLTXROLLBACKTHROWHEFINALLY/由于由HIBERNATE抛出的异常都视为不可以恢复的,因此应该确保在FINALLY代码块中调用CLOSE方法,以关闭掉SESSION。(5)数据访问操作完毕,一定要关闭SESSION/SESSIONCLOSERETURNRETURNALLENTERPRISECUSTOMERINFOPOSOVERRIDEPUBLICENTERPRISECUSTOMERINFOPOSELECTONEENTERPRISECUSTOMERINFOINTENTERPRISECUSTOMERIDSESSIONSESSIONNULLTRANSACTIONTXNULLENTERPRISECUSTOMERINFOPORETURNEDONEENTERPRISECUSTOMERINFOPONULLTRY/(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/SESSIONCLOSERETURNRETURNEDONEENTERPRISECUSTOMERINFOPOOVERRIDEPUBLICLISTSELECTSOMEENTERPRISECUSTOMERINFOSTRINGSQLWHERESTRING,PAGESTATEPOONEPAGESTATEPOSESSIONSESSIONNULLTRANSACTIONTXNULLLISTRETURNALLENTERPRISECUSTOMERINFOPOSNULLTRY/(1)首先获得SESSION对象,但如果应用SESSIONFACTORYGETCURRENTSESSION则获得的SESSION为空对象。GETCURRENTSESSION方法获得当前的SESSION,而OPENSESSION方法是重新建立一个新的SESSION;在一个应用程序中,如果DAO层使用SPRING的HIBERNATE模板,通过SPRING来控制SESSION的生命周期,则首选GETCURRENTSESSION;而如果应用使用HIBERNATE的大多数应用程序需要某种形式的“上下文相关的”SESSION。/SESSIONSESSIONFACTORYOPENSESSION/(2)启动事务/TXSESSIONBEGINTRANSACTION/(3)完成具体的数据库访问操作/首先获得满足查询条件的记录总数TOTALCOUNTER/QUERYONEQUERYSESSIONCREATEQUERY“SELECTCOUNTFROMCOMPX1987BLUEDREAMCRMDAOPOENTERPRISECUSTOMERINFOPO“ASONEENTERPRISECUSTOMERINFOPO“SQLWHERESTRINGLONGOBJECTCOUNTERLONGONEQUERYUNIQUERESULTLONGTOTALCOUNTEROBJECTCOUNTERLONGVALUE/根据所获得的满足查询条件的记录总数,动态获得分页状态PO对象中的其它属性值(通过调用SETPAGESTATEPOMEMBERPROPERTY方法)/ONEPAGESTATEPOSETPAGESTATEPOMEMBERPROPERTYINTTOTALCOUNTER/构建满足查询条件的HQL语句/STRINGQUERYHQLSTRING“FROMCOMPX1987BLUEDREAMCRMDAOPOENTERPRISECUSTOMERINFOPO“ASONEENTERPRISECUSTOMERINFOPO“SQLWHERESTRING/创建出包装该HQL语句的QUERY接口对象/ONEQUERYSESSIONCREATEQUERYQUERYHQLSTRING/设置分页查询过程中的相关的两个控制参数(开始记录号和返回的每页数量)/ONEQUERYSETFIRSTRESULTONEPAGESTATEPOGETTHISPAGEFIRSTELEMENTNUMBERONEQUERYSETMAXRESULTSONEPAGESTATEPOGETONEPAGESIZE/查询出满足条件的某一页的数据,并返回该页数据(注意不是返回所有的数据)/RETURNALLENTERPRISECUSTOMERINFOPOSONEQUERYLIST/(4)数据操作成功,则提交事务,否则将不会真正“修改”数据/TXCOMMITCATCHHIBERNATEEXCEPTIONHE/(4)数据操作失败,则取消提交(回滚)/IFTXNULLTXROLLBACKTHROWHEFINALLY/由于由HIBERNATE抛出的异常都视为不可以恢复的,因此应该确保在FINALLY代码块中调用CLOSE方法,以关闭掉SESSION。(5)数据访问操作完毕,一定要关闭SESSION/SESSIONCLOSERETURNRETURNALLENTERPRISECUSTOMERINFOPOS/按照ID号码删除某个特定的企业客户信息/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/SESSIONCLOSERETURNTRUE/修改一个企业客户信息/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_NUMBERONEQUER

温馨提示

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

评论

0/150

提交评论