在开发持久层的时候,我们可以使用JDBC、Hibernate、Java持久化API、Mybatis等任意的持久化框架。但是不论我们使用哪一种技术,都需要一些特定的数据库访问步骤,比如获取连接、创建语句、绑定参数、执行语句、释放资源等,但是每个数据库访问方法有有些不同。因此Spring将数据访问过程中固定的和可变的部分明确划分为两个不同的类:模板(template)和回调(callback)。
数据访问模板
针对不同的持久化平台,Spring提供了多个可选的模板
模板类 | 用途 |
---|---|
jdbc.core.JdbcTemplate | JDBC链接 |
jdbc.core.namedparam.NamedParameterJdbcTemplate | 支持命名参数的JDBC链接 |
jdbc.core.simple.SimpleJdbcTemplate | 通过Java5简化后的JDBC链接 |
orm.hibernate.HibernateTemplate | Hibernate 2.x的Session |
orm.hibernate3.HibernateTemplate | Hibernate 3.x的Session |
orm.ibatis.SqlMapClientTemplate | Ibatis SqlMap客户端 |
orm.jdo.JdoTemplate | Java数据对象(Java Data Object)的实现 |
orm.jpa.JpaTemplate | Java持久化API的实体管理器 |
DAO支持类
数据访问模板并不是Spring数据访问框架的全部。每个模板提供了一些简便的方法,是我们不必创建明确的回调实现,从而简化了数据访问。
另外,基于模板-回调设计,Spring提供了DAO支持类,而将业务自己的DAO类作为他的子类。例如,当编写应用程序自己的DAO实现时,可以继承DAO支持类并调用模板获取方法来直接访问底层的数据访问模板。

DAO支持类 | 描述 |
---|---|
jdbc.core.support.JdbcDaoSupport | JDBC链接 |
jdbc.core.namedparam.NamedParameterJdbcDaoSupport | 带命名参数的JDBC链接 |
jdbc.core.simple.SimpleJdbcDaoSupport | 使用Java5进行了简化的JDBC链接 |
orm.hibernate.support.HibernateDaoSupport | Hibernate 2.x 的Session |
orm.hibernate3.support.HibernateDaoSupport | Hibernate 3.x 的Session |
orm.ibatis.support.SqlMapClientDaoSupport | iBatis SqlMap 客户端 |
orm.jdo.support.JdoDaoSupport | Java 数据对象实现 |
orm.jpa.support.JpaDaoSupport | Java持久化API的实体管理器 |
网友评论