一: 数据访问模版化 : spring将数据访问过程中固定的和可变的部分明确划分为两个不同的类: 模板和回调
模板 : 事务控制,管理资源,处理异常
回调 : 创建语句,绑定参数,整理数据集
spring 提供了: jdbcTemplate 和 HibernateTemplate 或 JpaTemplate
二: 使用数据访问模板
方式1: 将其配置为spring上下文中的bean并将其直入到应用程序的DAO中
方式2: 使用spring的DAO支持类进一步简化应用程序的DAO配置 (Spring提供了DAO支持类,而将业务自己的DAO类作为它的子类)当编写应用程序自己的DAO实现时,可以继承自DAO支持类并调用模板获取方法类直接访问底层的数据访问模板。列如应用程序的DAO继承自JdbcDaoSupport,那么只需要getJdbcTemplate()方法就可以获得jdbcTemplate并使用它。
三:spring上下文中配置数据源bean的多种方式
1、通过jdbc驱动程序定义的数据源
2、通过jndi查找的数据源 : 数据源完全可以在应用程序之外进行管理,这样应用程序只需在访问数据库的时候查找数据源就可以了。
3、连接池的数据源:spring并没有提供数据源连接池实现。可以DBCP
DBCP包含了多个提供连接池功能的数据源,其中BasicDataSource是常用的
四、spring 访问数据库
1: jdbc方式: 使用jdbc模板承担了资源管理和异常处理的工作,从而简化了jdbc代码,让我们只需编写从数据库读写数据的代码。
jdbcTemplate : 最基本的Spring Jdbc模板,这个模板支持最简单的jdbc数据库访问功能以及简单的索引参数查询。
NamedParameterJdbcTemplate : 使用该模板类查询时,可以将查询值以命名参数的形式绑定到sql中。
SimpleJdbcTemplate: 该模板包含自动装箱,泛型,可变参数列表简化jdbc模板。
需要配置 : SimpleJdbcTemplate 和 SimpleJdbcTemplateSpitterDao
2 : spring中集成hibernate
spring 对ORM框架的支持提供的服务: spring声明式事务的集成支持,透明的异常处理,线程安全的模版类,dao支持类,资源管理。
3: spring与java持久化API
配置实体管理工厂 : 基于Java持久化api的应用程序使用EntityManagerFactory的实现类来获取EntityManager实例。
包括两种类型,应用程序管理类型和容器管理类型。他们二者之间唯一值得关注的区别是,在spring应用上下文中如何进行配置。其中容器管理类型,可以将数据源信息配置在Spring应用上下文,而不是在persistence.xml文件中。