spring JDBC template


Spring 的Jdbc Template

JdbcTemplate

jdbctemplate 是spring 框架中提供的一个模板对象,是对原始繁琐的jdbc API 对象的简单封装

核心对象

jdbcTemplate jdbcTemplate  = new JdbcTemplate(DataSource dataSource)

核心方法

int update():执行增删改语句
List<T> query() 查询多个
T queryForObject() 查询一个
new BeanPropertyRowMapper<>(): 实现ORM 映射封装

Spring 事务

Spring 中的事务控制方式

编程式

直接把事务的代码和业务代码耦合到一起

声明式

直接采用配置的方式实现事务控制,业务代码和事务代码实现解耦合,使用AOP思想

编程式事务控制相关对象

PlatformTransactionManager

platformTransactionManager 接口,是spring 的事务管理器,

  1. transactionStatus getTransaction(Transactiondefinition definition); 获取事务状态信息
  2. void commit(TransactionStatus status); 提交
  3. void rollabck(TransactionStatus status);回滚

    Dao 层是jdbcTemplate 或mybatis 是 DataSourceTransactionManager; Dao 层是Hibernate时,HibernateTransactionManager Dao 层是JPA 时,JpaTransactionManager

TransactionDefinition

TransactionDefinition接口 提供事务的定义信息 int getIsolationLevel() 获得事务隔离级别 int getPropogationBehavior() 获得事务的传播行为 int getTimeout() 获得超时时间 boolean isReadOnly 是否只读

事务隔离级别

 事务隔离级别,设置隔离级别,可以解决事务并发产生的问题如脏读,不可重复

基于XML 声明式事务控制

底层是采用AOP思想来实现 1. 核心业务代码编写 2. 事务增强代码编写 3. 切面配置

 引入tx 
 事务管理器通知配置
 事务管理器AOP 配置