Spring技术内幕之数据库操作组件的实现(02)-ORM的设计与实现

来源:互联网 发布:sql数据库设计实例 编辑:程序博客网 时间:2024/05/16 03:42

Spring ORM的设计与实现

 <应用场景>

 java作为一种面向对象的语言,为面向对象原则(封装继承多态)的实现提供了语言及运行环境支持,然而,由于这些面向对象的原则是从软件工程的基础上发展而来的,与从数据理


论中发展起来的关系型数据库技术在基础上存在着很大的差异。因此,在利用java进行开发时,操作关系型数据库时有很大的不便,为了解决这些不匹配的问题,出现了ORM产品

较常用的ORM产品比如:Hibernate MybatisJPA


在通常情况下,可以直接使用ORM框架,比如使用Hibernate。但是在使用Hibernate的过程中,需要处理SessionSessionFactory等类外,还需要处理诸如事务处理,打开Session和关闭Session问题.这无疑增加了Hibernate的使用难度。

而Spring提供了Hibernate/Mybatis/Jpa等封装,如HibernateDaoSupportHibernateTemplateJpaDaoSupportJdbcDaoSupport等,简化了繁琐的通用过程,使开发人员只关注数据,比如数据的查询/删除等。


<设计概要>

Spring ORM包为主流的ORM工具提供了封装支持,如熟知的Hibernate外还有MybatisJPA等。使用其提供的模板类(Tenpalte Class) ,Tempalte核心类的设计如下图:



在关系图中,可以看出DaoSupport是一个基类,在这个基类上,设计了各种相关的子类,比如:HibernateDaoSupportHibernateTemplateJpaDaoSupportJdbcDaoSupportSqlMapClientDaoSupport

0 0