`
iamjxc
  • 浏览: 3626 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Spring JPetStore iBatis向Hibernate迁移疑惑

阅读更多
    目前在做hibernate的技术积累, 找了很多例子, 其中spring自带的jpetstore的代码结构是比较合理的,与大家讨论的DAO, DOMAIN等分层结构很一致.
    但是这个例子是spring+iBatis做的, 我在往Hibernate迁移时产生了很多疑问, 请大家指点一下.
   
    首先, 迁移的目标是仅修改DAO实现层, 不能修改DAO接口和域对象. 这样做的目的也是为了测试更换持久层的可能性和代价.在这个前提下用hibernate tools产生的PO类和HBM文件显然和已有的域对象结构存在很大出入, 我的解决方法是:
    针对查询操作:
    1. 对域对象, 再做一套查询用的PO和HBM(从多个实体PO里关联查询)
    2. 对查询出来后的PO再用PropertyUtils.copyProperties把值拷贝到域对象里
    3. 最后返回域对象
   
    针对保存操作:
    1. 把域对象的值拷贝到多个PO里
    2. 分别保存每个PO
   
    现在的疑惑是:
    1. 原有的域对象结构非常简单, 而PO为了保持对象间关系, 结构复杂, 两者在做copy时需要大量手工转换, 对list结果集还要做循环转换, 这样做是否合理?有没有更好的方案

    2. robbin曾提到Hibernate的PO就是非贫血的域模型, 那么PO是否能够直接拿来做域模型对象用? (这个又涉及了PO是否该传到view层的问题)

    3. 为了整体简单, 能否所有PO不采用对象建模, 而是仅和表结构对应是否可行?
      如主从表结构的PO里, 主表的PO属性里去掉对应子表的Set,由开发员自己编码来处理关联关系,
      需要时调用子表的DAO检索数据.
   
   
   
分享到:
评论
1 楼 galaxystar 2006-09-19  
针对po,改动较少!
ibatis与hibernate应该是通用的!
在没有abator之前,我都用hibernate的DB2DO生成工具!

不过有一点是比较棘手的!
在ibatis里,延迟加载的性能没有表连接来得直接,方便,快速!
原因是大数据量有分页在,不会有任何性能损失!反而延迟让可读性变得很低!

所以ibatis里,多半是直接做连接查询的!

相关推荐

    jpetstore4.0 (spring+struts+ibatis)

    《基于Spring、Struts和iBatis的jpetstore4.0详解》 jpetstore4.0是一款经典的电子商务示例应用,它采用Spring、Struts和iBatis这三个核心框架构建,展示了如何在Java环境下实现一个完整的MVC(Model-View-...

    spring+ibatis的jpetstore实例工程,包含完整源代码和jar包

    《Spring与iBatis结合的JPetStore实例详解》 在Java Web开发领域,Spring框架以其强大的依赖注入和面向切面编程能力,以及全面的整合能力,成为了许多开发者的选择。而iBatis作为一款轻量级的数据访问层框架,以其...

    Spring对IBatis的整合

    package org.springframework.samples.jpetstore.dao.ibatis; import java.util.List; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import org.springframework.samples.jpetstore.dao...

    JPetStore (Struts + Spring + Hibernate)版

    这个版本相较于之前的JPetStore5.0,进行了重要的技术升级,主要体现在将数据持久层的Ibatis替换为更强大的Hibernate,并引入了Spring框架来增强应用程序的模块化和管理。 **Struts框架:** Struts是Apache基金会的...

    spring jpetstore2.5

    6. **配置Hibernate**:由于JPetStore使用了Hibernate作为ORM工具,需要配置Hibernate的SessionFactory,并在Spring中进行声明。 7. **运行与调试**:最后,配置Tomcat服务器,部署项目并启动,通过浏览器访问应用...

    spring jpetstore spring附带的例子

    《Spring JPetStore:Spring框架的经典示例》 Spring框架是Java开发中广泛使用的轻量级框架,以其灵活、高效和模块化的特性深受开发者喜爱。其中,JPetStore项目是Spring官方提供的一个经典示例,它展示了Spring的...

    学习Spring 的例子JpetStore

    《Spring框架学习:以JpetStore为例》 Spring框架是Java企业级应用开发中的核心框架,它为开发者提供了丰富的功能,简化了开发流程,提高了代码的可测试性和可维护性。JpetStore作为Spring的经典示例项目,是学习...

    spring例子: jpetstore

    标题 "spring例子: jpetstore" 提到的是一个基于Spring框架的应用示例——JPetStore。这个项目是Spring官方提供的一个经典示例,用于展示如何使用Spring框架来构建Web应用程序。它是一个小型的在线宠物商店,包含了...

    jpetstore spring 的经典完整可直接运行的例子 jpetstore

    《基于jpetstore的Spring、iBatis与Struts整合实战》 jpetstore项目是Spring框架的一个经典示例,它全面展示了如何将Spring、iBatis和Struts这三个核心的Java Web技术进行集成,构建出一个完整的MVC(Model-View-...

    struts+spring+ibatis.doc

    通过整合Struts、Spring与ibatis,JpetStore 4.0不仅展现了ibatis在数据持久化方面的高效与灵活性,也展示了Struts与Spring在构建高效、可维护的J2EE应用程序中的协同优势。这种模式下的开发,不仅减少了代码量,...

    Struts+Spring+ibatis开发的Jpetstore宠物商店的开源程序下载地址

    Struts+Spring+ibatis开发的Jpetstore宠物商店的开源程序,在SourceForce上下载的,学JAVA WEB开发的人研究的热门开源程序。有需要的同学分享吧!这里提供的是一个下载地址,因为有点大,所以就提供了一个地址,大家...

    Struts+Spring+Hibernate实现的jpetstore

    Struts、Spring 和 Hibernate 是Java开发中的三大框架,它们各自在不同的层面上为应用程序提供支持。Struts 是一个 MVC(模型-视图-控制器)框架,Spring 是一个全面的后端应用框架,而 Hibernate 则是 ORM(对象...

    iBATIS JPetStore

    iBATIS JPetStore是一个经典的开源项目,它用于展示iBATIS框架在实际应用中的使用。iBATIS是一个数据持久层框架,它简化了Java应用程序与数据库之间的交互,避免了直接编写大量的SQL语句。JPetStore是基于iBATIS实现...

    struts+spring+ibatis框架总结.doc

    Struts+Spring+Ibatis框架是Java Web开发中常见的轻量级组合,它们各自负责不同的职责,协同构建高效、可维护的J2EE应用程序。Struts作为MVC框架,负责控制流程;Spring提供依赖注入和面向切面编程,增强系统的灵活...

    Struts+Spring+Ibatis整合开发

    AOP在事务管理中得到广泛应用,而ORM方面,JpetStore 4.0选择了Ibatis,它不完全像Hibernate那样自动生成SQL,而是允许开发者直接编写SQL语句,以牺牲部分自动化为代价,换取更高的灵活性和数据库移植性。...

    基于struts+spring+ibatis的轻量级J2EE开发

    ### 基于Struts+Spring+Ibatis的轻量级J2EE开发 #### 1. 前言 随着互联网技术的迅速发展,企业级应用开发面临着日益复杂的挑战。传统的J2EE架构虽然成熟稳定,但在面对敏捷开发的需求时显得力不从心。为了提高开发...

    iBATIS_JPetStore-4.0.5

    iBATIS_JPetStore-4.0.5 是一个基于Java的开源示例项目,它展示了如何使用iBATIS框架来构建一个完整的电子商务应用程序。iBATIS是一个数据映射框架,它简化了Java应用程序与数据库之间的交互,允许将SQL查询直接嵌入...

    Spring jpetstore

    **Spring jpetstore** 是一个基于Spring框架的开源示例应用,它展示了如何使用Spring MVC、Spring JDBC以及Spring的其他核心特性来构建一个完整的Web应用。这个项目是Spring官方提供的,旨在帮助开发者学习和理解...

    spring之jpetstore

    《Spring之JPetStore:深度解析与实践指南》 在Java世界中,Spring框架以其强大的功能和灵活性,已经成为企业级应用开发的首选。而JPetStore作为Spring框架的经典示例项目,是学习和理解Spring核心特性的绝佳起点。...

Global site tag (gtag.js) - Google Analytics