应用详细解析strutshibernate示例课件.ppt

应用详细解析strutshibernate示例课件.ppt

ID:57046785

大小:66.00 KB

页数:17页

时间:2020-07-28

应用详细解析strutshibernate示例课件.ppt_第1页
应用详细解析strutshibernate示例课件.ppt_第2页
应用详细解析strutshibernate示例课件.ppt_第3页
应用详细解析strutshibernate示例课件.ppt_第4页
应用详细解析strutshibernate示例课件.ppt_第5页
资源描述:

《应用详细解析strutshibernate示例课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Hibernate与Struts集成教学内容在模型层使用业务代理模式模型层通过Hibernate完成业务数据的持久化业务代理工厂类负责构造业务代理类实例在StrutsAction中访问业务代理类的业务方法采用MVC框架的应用的各个层次之间的依赖关系模型应该和视图以及控制器之间保持独立。在分层的框架结构中,位于上层的视图和控制器依赖于下层模型,而下层模型不应该依赖于上层的视图和控制器。模型层采用业务代理模式客户层通过业务代理接口访问模型,当模型的实现发生变化,只要业务代理接口不变,就不会影响客户层中访问模型层的程序代码。ne

2、tstore应用的分层结构netstore应用的分层结构netstore应用的业务代理接口为INetstoreService,它有两种实现方式:方式一:由业务代理实现类NetstoreServiceImpl来实现业务逻辑,它通过HibernateAPI访问数据库。方式二:采用无状态会话EJB组件来实现业务逻辑。EJB组件通过HibernateAPI访问数据库,业务代理实现类NetstoreEJBFromFactoryDelegate调用EJB组件方法来为控制层提供服务。业务代理接口INetstoreServicepubli

3、cinterfaceINetstoreServiceextendsIAuthentication{/**批量检索Item对象,beginIndex参数指定查询结果的起始位置,length指定检索的Item对象的数目。对于Item对象的所有集合属性,都使用延迟检索策略*/publicListgetItems(intbeginIndex,intlength)throwsDatastoreException;/**根据id加载Item对象*/publicItemgetItemById(Longid)throwsDatastore

4、Exception;/**根据id加载Customer对象,对于Customer对象的orders属性,显式采用迫切左外连接检索策略*/publicCustomergetCustomerById(Longid)throwsDatastoreException;/**保存或者更新Customer对象,并且级联保存或更新它的orders集合中的Order对象*/publicvoidsaveOrUpdateCustomer(Customercustomer)throwsDatastoreException;/**保存订单*/pu

5、blicvoidsaveOrder(Orderorder)throwsDatastoreException;publicvoidsetServletContext(ServletContextctx);publicvoiddestroy();}IAuthentication接口publicinterfaceIAuthentication{/**登出Web应用*/publicvoidlogout(Stringemail);/**根据客户的email和password验证身份,如果验证成功,返回匹配的Customer对象,它的

6、orders集合属性采用延迟检索策略,不会被初始化*/publicCustomerauthenticate(Stringemail,Stringpassword)throwsInvalidLoginException,ExpiredPasswordException,AccountLockedException,DatastoreException;}NetstoreServiceImpl的authenticate()方法tx=session.beginTransaction();//对与Customer关联的Order对

7、象采用延迟检索策略Queryquery=session.createQuery("fromCustomercwherec.email=:emailandc.password=:password");query.setString("email",email);query.setString("password",password);Listresult=query.list();tx.commit();if(result.isEmpty())thrownewInvalidLoginException();return(Cu

8、stomer)result.iterator().next();NetstoreServiceImpl的getCustomerById()方法tx=session.beginTransaction();//对与Customer关联的Order对象采用迫切左外连接检索策略Queryquery=sessio

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。