目前在做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检索数据.
分享到:
相关推荐
《基于Spring、Struts和iBatis的jpetstore4.0详解》 jpetstore4.0是一款经典的电子商务示例应用,它采用Spring、Struts和iBatis这三个核心框架构建,展示了如何在Java环境下实现一个完整的MVC(Model-View-...
《Spring与iBatis结合的JPetStore实例详解》 在Java Web开发领域,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...
这个版本相较于之前的JPetStore5.0,进行了重要的技术升级,主要体现在将数据持久层的Ibatis替换为更强大的Hibernate,并引入了Spring框架来增强应用程序的模块化和管理。 **Struts框架:** Struts是Apache基金会的...
6. **配置Hibernate**:由于JPetStore使用了Hibernate作为ORM工具,需要配置Hibernate的SessionFactory,并在Spring中进行声明。 7. **运行与调试**:最后,配置Tomcat服务器,部署项目并启动,通过浏览器访问应用...
《Spring JPetStore:Spring框架的经典示例》 Spring框架是Java开发中广泛使用的轻量级框架,以其灵活、高效和模块化的特性深受开发者喜爱。其中,JPetStore项目是Spring官方提供的一个经典示例,它展示了Spring的...
《Spring框架学习:以JpetStore为例》 Spring框架是Java企业级应用开发中的核心框架,它为开发者提供了丰富的功能,简化了开发流程,提高了代码的可测试性和可维护性。JpetStore作为Spring的经典示例项目,是学习...
标题 "spring例子: jpetstore" 提到的是一个基于Spring框架的应用示例——JPetStore。这个项目是Spring官方提供的一个经典示例,用于展示如何使用Spring框架来构建Web应用程序。它是一个小型的在线宠物商店,包含了...
《基于jpetstore的Spring、iBatis与Struts整合实战》 jpetstore项目是Spring框架的一个经典示例,它全面展示了如何将Spring、iBatis和Struts这三个核心的Java Web技术进行集成,构建出一个完整的MVC(Model-View-...
通过整合Struts、Spring与ibatis,JpetStore 4.0不仅展现了ibatis在数据持久化方面的高效与灵活性,也展示了Struts与Spring在构建高效、可维护的J2EE应用程序中的协同优势。这种模式下的开发,不仅减少了代码量,...
Struts+Spring+ibatis开发的Jpetstore宠物商店的开源程序,在SourceForce上下载的,学JAVA WEB开发的人研究的热门开源程序。有需要的同学分享吧!这里提供的是一个下载地址,因为有点大,所以就提供了一个地址,大家...
Struts、Spring 和 Hibernate 是Java开发中的三大框架,它们各自在不同的层面上为应用程序提供支持。Struts 是一个 MVC(模型-视图-控制器)框架,Spring 是一个全面的后端应用框架,而 Hibernate 则是 ORM(对象...
iBATIS JPetStore是一个经典的开源项目,它用于展示iBATIS框架在实际应用中的使用。iBATIS是一个数据持久层框架,它简化了Java应用程序与数据库之间的交互,避免了直接编写大量的SQL语句。JPetStore是基于iBATIS实现...
Struts+Spring+Ibatis框架是Java Web开发中常见的轻量级组合,它们各自负责不同的职责,协同构建高效、可维护的J2EE应用程序。Struts作为MVC框架,负责控制流程;Spring提供依赖注入和面向切面编程,增强系统的灵活...
AOP在事务管理中得到广泛应用,而ORM方面,JpetStore 4.0选择了Ibatis,它不完全像Hibernate那样自动生成SQL,而是允许开发者直接编写SQL语句,以牺牲部分自动化为代价,换取更高的灵活性和数据库移植性。...
### 基于Struts+Spring+Ibatis的轻量级J2EE开发 #### 1. 前言 随着互联网技术的迅速发展,企业级应用开发面临着日益复杂的挑战。传统的J2EE架构虽然成熟稳定,但在面对敏捷开发的需求时显得力不从心。为了提高开发...
iBATIS_JPetStore-4.0.5 是一个基于Java的开源示例项目,它展示了如何使用iBATIS框架来构建一个完整的电子商务应用程序。iBATIS是一个数据映射框架,它简化了Java应用程序与数据库之间的交互,允许将SQL查询直接嵌入...
**Spring jpetstore** 是一个基于Spring框架的开源示例应用,它展示了如何使用Spring MVC、Spring JDBC以及Spring的其他核心特性来构建一个完整的Web应用。这个项目是Spring官方提供的,旨在帮助开发者学习和理解...
《Spring之JPetStore:深度解析与实践指南》 在Java世界中,Spring框架以其强大的功能和灵活性,已经成为企业级应用开发的首选。而JPetStore作为Spring框架的经典示例项目,是学习和理解Spring核心特性的绝佳起点。...