Spring对JDBC和事务的支持(原子性,一致性,隔离性,持久性)
1.JDBC
- @Repository注解实现的是DAO(数据访问对象)
- 而DAO的实现依赖于某个持久化源,比如一个基于JDBC的DAO需要一个数据源DataSource
jdbcTemplate类是Spring对JDBC支持类库中的核心类
- jdbcTemplate负责:(1)创建和释放资源
(2)执行SQL语句、存储过程,并通过ResultSet来返回数据 - 使用方式:(1)XXXDao注入jdbcTemplate,并且给jdbcTemplate注入DataSource
(2)XXXDao继承JdbcDaoSupport类,而JdbcDaoSupport类中定义了JdbcTemplate成员变量
增删改(update)
查询(queryForObject)
2. 事务(原子性,一致性,隔离性,持久性)
数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读
- 编程式事务管理 :Spring一般都推荐使用TransactionTemplate来进行编程式事务管理
- 声明式事务管理:Spring Framework的声明式事务管理是建立在Spring的面向切面编程(aspect-oriented programming, AOP) 上的
声明式事务管理: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分