`

JPetStore persistence Code Reading

阅读更多
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

    此外,考虑到其作为示例应用的性质,jpetstore可能还展示了Java Persistence API(JPA)的使用,这是Java EE中用于对象关系映射的标准,允许开发者使用面向对象的方式来操作数据库。JPA简化了数据库访问,使得代码...

    jpetstore系统架构图

    《深入解析jpetstore系统架构图:从设计到实现》 在IT行业的软件开发领域,jpetstore系统作为一款开源的网上宠物商店示例应用程序,以其清晰的分层架构、强大的功能性和高度可扩展性而著称。尤其在jpetstore5.0版本...

    jpetstore开源学习代码

    《jpetstore开源学习代码》是一个深受开发者欢迎的学习资源,特别针对那些希望深入理解J2EE(Java 2 Platform, Enterprise Edition)技术的初学者和有经验的程序员。jpetstore项目是一个示例应用,它展示了如何在...

    学习Spring 的例子JpetStore

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

    spring例子: jpetstore

    6. **Spring Data JPA**:Spring的数据访问抽象层,用于简化JPA(Java Persistence API)的使用,提供了一种声明式的方式来查询数据库。 7. **版本控制**:如Git的使用,可以帮助开发者协同工作,跟踪代码历史,...

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

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

    jpetstore4.0 (spring+struts+ibatis)

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

    iBATIS JPetStore

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

    jpetstore宠物店程序

    **jpetstore宠物店程序详解** `jpetstore` 是一个经典的开源项目,它展示了如何使用Java技术栈,特别是Struts和Spring框架来构建一个完整的Web应用。这个程序旨在为用户提供一个在线购买宠物及其相关商品的平台,...

    JPetStore5(更正了其中的2个错误)

    5. **Java Persistence API (JPA)**:用于对象关系映射(ORM),简化数据库操作。 6. **Java Message Service (JMS)**:用于异步通信和消息传递。 7. **Struts框架**:用于控制应用程序流程,实现Model-View-...

    springMVC+mybatis+jpetstore工程源码

    【标题】"springMVC+mybatis+jpetstore工程源码"揭示了这是一个结合了SpringMVC、MyBatis和jpetstore示例项目的工程,主要用于演示如何在实际开发中整合这三个技术。SpringMVC是Spring框架的一个模块,用于处理Web...

    jpetstore-6.war

    使用了mybatis的jpetstore-6

    JPetStore (Struts + Spring + Hibernate)版

    **标题解析:** "JPetStore (Struts + Spring + Hibernate)版" 是一个基于Java技术的开源电子商务示例应用,它集成了Struts、Spring和Hibernate三个关键的开源框架。这个版本相较于之前的JPetStore5.0,进行了重要的...

    MyEclipse中加载Spring的JPetStore

    《MyEclipse中加载Spring的JPetStore详解》 在软件开发领域,Spring框架以其强大的功能和灵活性,已经成为Java企业级应用开发的事实标准。而MyEclipse作为一款强大的Java集成开发环境,为开发者提供了便捷的Spring...

    jpetstore源码

    **jpetstore源码详解** `jpetstore`是一个经典的示例项目,它展示了如何使用Java企业级开发框架实现一个完整的网上宠物商店。这个源码是基于特定版本的Java技术栈构建的,如Spring框架、Struts框架或者MyBatis等,...

    SQL+Jpetstore配置

    ### SQL + JPetStore配置详解 #### 一、概述 JPetStore是一个广泛使用的开源示例应用程序,旨在演示企业级Java应用的构建过程。本文档将详细介绍如何在使用Oracle数据库时配置JPetStore,并解决配置过程中可能出现...

    JPetStore静态页面_java_java课程设计_java编程_

    **Java Web应用:JPetStore静态页面** JPetStore是一个基于Java技术的示例Web应用程序,主要用于教学目的,让学生和开发者了解如何使用Java进行Web开发。这个项目通常出现在Java课程设计中,它提供了构建电子商务...

    jpetstore源代码

    **标题解析:** "jpetstore源代码" 这个标题指的是一个开源项目或示例应用,名为"jpetstore",它提供了完整的源代码。这个项目可能是为了演示或者教学目的,让学习者能够理解并研究Java编程语言,特别是与Web应用...

    JPetStore4.0.5

    《JPetStore4.0.5:Ibatis与Struts的经典结合》 JPetStore4.0.5是一个基于Java的开源电子商务应用,它展示了如何有效地利用Ibatis和Struts框架构建一个简单而实用的在线商店系统。这个版本在设计上保持了简洁性,...

Global site tag (gtag.js) - Google Analytics