模拟hibernate中一级缓存下载

weixin_39821228 2019-08-23 12:00:18
使用一个简单的案例去模拟hibernate中的session级别(即一级缓存)的缓存,大家可以下载看看,内容很简单,但是很能说明问题
相关下载链接://download.csdn.net/download/zhengqiqiqinqin/5471717?utm_source=bbsseo
...全文
8 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
--------当当网SSH重构---------- 1.DAO需要根据原有接口全部重构. 采用Spring+Hibernate方式实现 2.Service改造工作 采用Spring的IoC注入方式使用DAO 3.Action改造工作 采用整合插件注入方式使用Spring容器的Service或DAO. (默认按名称匹配规则) 4.配置信息的改造 Service和DAO需要交给Spring容器. struts.xml不需要改变,因为引入struts-spring-plugin.jar后,Action创建会交给插件的ObjectFactory. web.xml需要定义ContextLoaderListener,实例化容器配置 5.将事务管理交个Spring,采用AOP方式,删除原有Struts事务拦截器 -------------改造步骤----------------- 例如用户注册功能 1) 引入Hibernate开发包 2) 引入Spring开发包和配置文件 applicationContext-base.xml 定义共同的datasource,sessionFactory applicationContext-dao.xml 定义DAO组件 applicationContext-service.xml 定义Service组件 applicationContext-aop.xml 定义事务管理,其他AOP功能 3)根据现有接口重构DAO组件 --检查hbm映射文件内容正确性 --在spring容器配置DAO组件 定义到applicationContext-dao.xml --定义sessionfactory,datasource(只做一次) 定义到applicationContext-base.xml 4)改造Service组件 --采用注入方式使用DAO --在spring容器配置Service组件 定义到applicationContext-service.xml 5)改造Action组件 --采用注入方式使用DAO和Service --引入Struts和Spring整合插件包(只做一次) struts2-spring-plugin.jar 6)修改web.xml,配置ContextLoaderListener(只做一次) ---------重构当当涉及的一些关联查询--------- 1.产品浏览模块 1)涉及数据表如下 d_category d_category_product d_product d_book 2)最新上架图书功能 a. findNew.action-->NewProductAction-->ProductDAO b.重构ProductDAO 添加hbm.xml映射文件 添加HibernateProductDAO实现类 添加DAO在Spring的配置 c.改造NewProductAction 采用注入形式使用DAO.(名称匹配) 3)类别显示区域 a.findCategory.action-->CategoryAction-->CategoryDAO 改造成CategoryAction-->MainService-->CategoryDAO b.重构CategoryDAO c.提取MainService d.改造CategoryAction 4)类别浏览界面 a.booklist.action-->BookListAction-->CategoryDAO,BookDAO b.重构CategoryDAO c.重构BookDAO d.改造BookListAction -----------特殊功能改造------------ 1.主界面左侧类别菜单显示.可以利用Hibernate一对多映射,加载当前类别的子元素.(参考hibernate05工程Category示例) 2.分类浏览页面,左侧类别及其产品数量显示.数量统计可以采用Hibernateformula映射实现. 3.购物车业务组件利用Springscope="session" a.购买处理流程 buy.action-->BuyAction-->CartFactory-->ShoppingCart -->ProductDAO 将ShoppingCart组件交给容器并且设置scope="session"后, 需要使用cart对象时,容器首先去session对象寻找,有的话返回;没有spring会创建一个并放入spring容器,然后将cart返回.等价于原有CartFactory的功能逻辑. b.如果使用scope="session"或scope="request" 需要在web.xml定义RequestContextListener ==============性能提升================= 1.二级缓存和查询缓存 二级缓存适用于产品查看功能.对产品对象采用二级缓存存储. (参考hibernate06内容及示例) 查询缓存适用于主页面左侧分类菜单显示功能. (参考hibernate06内容及示例) 2.fetch和cache的使用 利用join fetch可以提高查询效率,将关联属性随着主对象一起采用表连接的形式查询. 如果使用了join fetch的话,查询缓存缓存主对象.join fetch的关联属性不能缓存. 3.Hibernate假分页问题 如果查询语句使用了join fetch,遇到分页情况下,采用假分页机制执行.(不会生成limit等分页查询命令,首先查所有,然后返回部分需要数据).

12,794

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧