-
当开发Spring应用的__持久层__时, 会有多种选择:
JDBC
Hibernate
Java持久化API
其他持久化框架
NoSQL等
-
数据访问的功能放到一个或多个专注于此任务的组件中, 这样的组件称为__DAO__或__Repository__
服务对象 -----> Repository接口 | | | Repository具体实现
-
Spring的数据访问异常体系
(1) 引起JDBC中的SQLException的可能原因
1° 无法连接数据库
2° 要执行的查询存在语法错误
3° 查询的表或列不存在
4° 插入或更新的数据违反了数据库约束
结论: SQLException的可能引发原因太多, 并且通常在catch块中无法解决, 并且SQLException是检查型异常必须catch
(2) 一些持久化框架提供了相对丰富的异常体系, 例如Hibernate, 但是它们是__框架相关的__, 不具有通用性
(3) SpringJDBC的异常处理体系
1° Spring为读取和写入数据的几乎所有错误情况都提供了对应的异常, 有丰富的异常类型
2° 这些异常类型没有与特定的框架关联
3° 所有异常都继承于DataAccessException, 而DataAccessException继承于RuntimeException, 所以不是一定要catch
-
数据访问模板化
(1) 使用了__模板方法模式__, 因为数据访问的中一些步骤是通用的, 一些步骤是定制的, 但是整体流程是一样的
(2) Spring将数据访问过程中固定的部分称为__模板template__, 可变的部分称为__回调callback__
Repository模板 Repository回调 1. 准备资源 2. 开始事务 3. 在事务中执行 4. 返回数据 5. 提交/回滚事务 6. 关闭资源和错误处理
(3) Spring提供了多个可选的模板 P293
JDBC的模板 --> JdbcTemplate Hibernate的模板 --> HibernateTemplate ...
JdbcTemplate的类图见"JdbcTemplate.uml"
-
在声明模板和Repository之前, 我们需要先在Spring中配置一个数据源用于数据库连接
chapter10_通过Spring和JDBC征服数据库_1_Spring的数据访问哲学
猜你喜欢
转载自blog.csdn.net/captxb/article/details/87884718
今日推荐
周排行