1. 代码结构
在persistence下面有iface, sqlmapdao package以及DaoConfig.java, dao.xml文件。
iface就是定义dao的接口;sqlmapdao中定义dao的实现,sqlmapdao/sql包下是每个sqlmap所对应的xml文件,该文件就定义了每个mapped statement or 动态的statement; sql-map-config.xml就是定义iBatis的一些设置信息;到此为止,和以前都是一样的,没有什么特别的地方。
但是dao的实现有一些不同。所有的dao都继承于BaseSqlMapDao类
public class BaseSqlMapDao extends SqlMapDaoTemplate {
protected static final int PAGE_SIZE = 4;
public BaseSqlMapDao(DaoManager daoManager) {
super(daoManager);
}
}
可以看到SqlMapDaoTemplate和sping中的dao***Template比较相似,都是定义Dao的一些常用方法,具体的dao可以调用这个Template的方法完成具体的DAO操作。
public SqlMapDaoTemplate(DaoManager daoManager);
public int update(java.lang.String id, java.lang.Object parameterObject);
queryForObject, queryForList, queryForMap
queryForPaginatedList
等等操作方法。
todo:DaoManager具体还不知道是干什么用的,看名字应该能猜出点东西来。
哦,DaoManager是根据后面的dao.xml来生成的Dao的管理类,主要是:
getDao(),getTransaction(), startTransaction(), endTransaction(), commitTransaction().
<transactionManager type="SQLMAP">
<property name="SqlMapConfigResource"
value="com/ibatis/jpetstore/persistence/sqlmapdao/sql/sql-map-config.xml"/>
</transactionManager>
<dao interface="com.ibatis.jpetstore.persistence.iface.ItemDao"
implementation="com.ibatis.jpetstore.persistence.sqlmapdao.ItemSqlMapDao"/>
具体的配置估计还得参考一些东西,唉,这个配置的东西是越来越繁杂了。
不能给一点简单的方式么?
Service层就是直接调用这些dao的方法,返回domain当中定义的领域对象:)
这里的领域对象不是简单的一一映射的关系,也不是完全的get/set方法,可以说是一个稍微rich一点的领域对象。也不能说是很rich吧,和我做BUG管理系统是一样的,不过比我做得好,因为这里的所有领域对象都实现了Serializable接口,而我当年没有实现这个接口。使得领域对象和持久层对象相互转换,sigh。
在给表示层用的BEAN中,具体还没有仔细看,不过居然有那么多的方法,改天得好好看一下。(TODO)
分享到:
相关推荐
此外,考虑到其作为示例应用的性质,jpetstore可能还展示了Java Persistence API(JPA)的使用,这是Java EE中用于对象关系映射的标准,允许开发者使用面向对象的方式来操作数据库。JPA简化了数据库访问,使得代码...
《深入解析jpetstore系统架构图:从设计到实现》 在IT行业的软件开发领域,jpetstore系统作为一款开源的网上宠物商店示例应用程序,以其清晰的分层架构、强大的功能性和高度可扩展性而著称。尤其在jpetstore5.0版本...
《jpetstore开源学习代码》是一个深受开发者欢迎的学习资源,特别针对那些希望深入理解J2EE(Java 2 Platform, Enterprise Edition)技术的初学者和有经验的程序员。jpetstore项目是一个示例应用,它展示了如何在...
《JPetStore-5.0:一个基于iBatis的开源电商示例解析》 JPetStore-5.0是一个著名的开源项目,它基于iBatis数据持久层框架,为开发者提供了一个完整的电子商务应用程序示例。这个项目由Apache Software Foundation...
《Spring框架学习:以JpetStore为例》 Spring框架是Java企业级应用开发中的核心框架,它为开发者提供了丰富的功能,简化了开发流程,提高了代码的可测试性和可维护性。JpetStore作为Spring的经典示例项目,是学习...
6. **Spring Data JPA**:Spring的数据访问抽象层,用于简化JPA(Java Persistence API)的使用,提供了一种声明式的方式来查询数据库。 7. **版本控制**:如Git的使用,可以帮助开发者协同工作,跟踪代码历史,...
《基于jpetstore的Spring、iBatis与Struts整合实战》 jpetstore项目是Spring框架的一个经典示例,它全面展示了如何将Spring、iBatis和Struts这三个核心的Java Web技术进行集成,构建出一个完整的MVC(Model-View-...
《基于Spring、Struts和iBatis的jpetstore4.0详解》 jpetstore4.0是一款经典的电子商务示例应用,它采用Spring、Struts和iBatis这三个核心框架构建,展示了如何在Java环境下实现一个完整的MVC(Model-View-...
iBATIS JPetStore是一个经典的开源项目,它用于展示iBATIS框架在实际应用中的使用。iBATIS是一个数据持久层框架,它简化了Java应用程序与数据库之间的交互,避免了直接编写大量的SQL语句。JPetStore是基于iBATIS实现...
**jpetstore宠物店程序详解** `jpetstore` 是一个经典的开源项目,它展示了如何使用Java技术栈,特别是Struts和Spring框架来构建一个完整的Web应用。这个程序旨在为用户提供一个在线购买宠物及其相关商品的平台,...
5. **Java Persistence API (JPA)**:用于对象关系映射(ORM),简化数据库操作。 6. **Java Message Service (JMS)**:用于异步通信和消息传递。 7. **Struts框架**:用于控制应用程序流程,实现Model-View-...
【标题】"springMVC+mybatis+jpetstore工程源码"揭示了这是一个结合了SpringMVC、MyBatis和jpetstore示例项目的工程,主要用于演示如何在实际开发中整合这三个技术。SpringMVC是Spring框架的一个模块,用于处理Web...
使用了mybatis的jpetstore-6
**标题解析:** "JPetStore (Struts + Spring + Hibernate)版" 是一个基于Java技术的开源电子商务示例应用,它集成了Struts、Spring和Hibernate三个关键的开源框架。这个版本相较于之前的JPetStore5.0,进行了重要的...
《MyEclipse中加载Spring的JPetStore详解》 在软件开发领域,Spring框架以其强大的功能和灵活性,已经成为Java企业级应用开发的事实标准。而MyEclipse作为一款强大的Java集成开发环境,为开发者提供了便捷的Spring...
**jpetstore源码详解** `jpetstore`是一个经典的示例项目,它展示了如何使用Java企业级开发框架实现一个完整的网上宠物商店。这个源码是基于特定版本的Java技术栈构建的,如Spring框架、Struts框架或者MyBatis等,...
### SQL + JPetStore配置详解 #### 一、概述 JPetStore是一个广泛使用的开源示例应用程序,旨在演示企业级Java应用的构建过程。本文档将详细介绍如何在使用Oracle数据库时配置JPetStore,并解决配置过程中可能出现...
**Java Web应用:JPetStore静态页面** JPetStore是一个基于Java技术的示例Web应用程序,主要用于教学目的,让学生和开发者了解如何使用Java进行Web开发。这个项目通常出现在Java课程设计中,它提供了构建电子商务...
**标题解析:** "jpetstore源代码" 这个标题指的是一个开源项目或示例应用,名为"jpetstore",它提供了完整的源代码。这个项目可能是为了演示或者教学目的,让学习者能够理解并研究Java编程语言,特别是与Web应用...