Spring 数据源配置与对象关系映射全解析
数据源声明
数据源声明是事务基础设施的关键部分。传统上,在 J2EE 中是通过对 javax.sql.DataSource
对象进行 JNDI 查找来实现的。数据源由服务器管理员预先配置,必要时可支持 JTA 事务。若在 J2EE 环境之外运行,数据源配置则由应用程序开发者负责,通常通过某种工厂对象,利用 java.sql.DriverManager
接口获取 java.sql.Connection
。这就导致了两种截然不同且不兼容的数据源配置方法。
Spring 为该问题提供了解决方案,它在任何访问数据库的框架代码中始终使用 javax.sql.DataSource
。为避免工厂/查找问题,Spring 的 IoC 框架使我们能够轻松配置数据源,无需复杂的查找代码即可将其提供给应用程序。以下是本地配置和通过 JNDI 获取的 J2EE 配置示例,应用程序无需知晓所使用的数据源类型,只需引用通用接口 javax.sql.DataSource
就能访问数据库。
本地非池化数据源
对于在 J2EE 环境之外运行的代码,Spring 提供了几种不依赖预配置服务器资源的 DataSource
实现。这些实现内部使用 DriverManager
,将连接封装在 javax.sql.DataSource
接口中。
需要注意的是,这些实现主要用于单元测试和集成测试,不适