第12章使用JDBC进行数据访问
第 12 章 使用JDBC进行数据访问
目录
- 12.1. 简介
- 12.1.1. Spring JDBC包结构
- 12.2. 利用JDBC核心类实现JDBC的基本操作和错误处理
- 12.2.1.
JdbcTemplate
类 - 12.2.2.
NamedParameterJdbcTemplate
类 - 12.2.3.
SimpleJdbcTemplate
类 - 12.2.4.
DataSource
接口 - 12.2.5.
SQLExceptionTranslator
接口 - 12.2.6. 执行SQL语句
- 12.2.7. 执行查询
- 12.2.8. 更新数据库
- 12.2.1.
- 12.3. 控制数据库连接
- 12.3.1.
DataSourceUtils
类 - 12.3.2.
SmartDataSource
接口 - 12.3.3.
AbstractDataSource
类 - 12.3.4.
SingleConnectionDataSource
类 - 12.3.5.
DriverManagerDataSource
类 - 12.3.6.
TransactionAwareDataSourceProxy
类 - 12.3.7.
DataSourceTransactionManager
类
- 12.3.1.
- 12.4. 用Java对象来表达JDBC操作
- 12.4.1.
SqlQuery
类 - 12.4.2.
MappingSqlQuery
类 - 12.4.3.
SqlUpdate
类 - 12.4.4.
StoredProcedure
类 - 12.4.5.
SqlFunction
类
- 12.4.1.
12.1. 简介
Spring JDBC抽象框架所带来的价值将在以下几个方面得以体现:(注:使用了Spring JDBC抽象框架之后,应用开发人员只需要完成斜体字部分的编码工作。)
指定数据库连接参数
打开数据库连接
声明SQL语句
预编译并执行SQL语句
遍历查询结果(如果需要的话)
处理每一次遍历操作
处理抛出的任何异常
处理事务
关闭数据库连接
Spring将替我们完成所有单调乏味的JDBC底层细节处理工作。
12.1.1. Spring JDBC包结构
Spring JDBC抽象框架由四个包构成:core
、 dataSource
、object
以及support
。
org.springframework.jdbc.core
包由JdbcTemplate
类以及相关的回调接口(callback interface)和类组成。
org.springframework.jdbc.datasource
包由一些用来简化DataSource
访问的工具类,以及各种DataSource
接口的简单实现(主要用于单元测试以及在J2EE容器之外使用JDBC)组成。工具类提供了一些静态方法,诸如通过JNDI获取数据连接以及在必要的情况下关闭这些连接。它支持绑定线程的连接,比如被用于DataSourceTransactionManager
的连接。
接下来,org.springframework.jdbc.object
包由封装了查询、更新以及存储过程的类组成,这些类的对象都是线程安全并且可重复使用的。它们类似于JDO,与JDO的不同之处在于查询结果与数据库是“断开连接”的。它们是在org.springframework.jdbc.core
包的基础上对JDBC更高层次的抽象。
最后,org.springframework.jdbc.support
包提供了一些SQLException
的转换类以及相关的工具类。
在JDBC处理过程中抛出的异常将被转换成org.springframework.dao
包中定义的异常。因此使用Spring JDBC进行开发将不需要处理JDBC或者特定的RDBMS才会抛出的异常。所有的异常都是unchecked exception,这样我们就可以对传递到调用者的异常进行有选择的捕获。