Spring的JdbcTemplate
概述
-
概念
- JdbcTemplate是spring框架中提供的一个模板对象,是对原始繁琐的Jdbc API对象的简单封装。
-
核心对象
- JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSource dataSource);
-
核心方法
-
int update();
- 执行增删改语句
-
List query();
- 查询多个
-
T queryForObject();
- 查询一个
-
new BeanPropertyRowMapper<>();
- 实现ORM映射封装
-
Spring整合JdbcTemplate
-
需求
- 基于Spring的xml配置实现账户的CRUD案例
-
步骤分析
-
- 创建java项目,导入坐标
-
- 编写Account实体类
-
- 编写AccountDao接口和实现类
-
- 编写AccountService接口和实现类
-
- 编写spring核心配置文件
-
- 编写测试代码
-
Spring的事务
事务控制方式
-
编程式事务控制
- 开发者直接把事务的代码和业务代码耦合到一起,在实际开发中不用。
-
声明式事务控制
- 开发者采用配置的方式来实现的事务控制,业务代码与事务代码实现解耦合,使用的AOP思想。
基于XML的声明式事务控制
-
明确事项
-
- 核心业务代码(目标对象) (切入点是谁?)
-
- 事务增强代码(Spring已提供事务管理器))(通知是谁?)
-
- 切面配置(切面如何配置?)
-
-
快速入门
-
需求
- 使用spring声明式事务控制转账业务
-
步骤分析
-
- 引入tx命名空间
-
- 事务管理器通知配置
-
<tx:advice id=“txAdvice” transaction-manager=“transactionManager”>
tx:attributes
<tx:method name=“save*” propagation=“REQUIRED”/>
<tx:method name=“delete*” propagation=“REQUIRED”/>
<tx:method name=“update*” propagation=“REQUIRED”/>
<tx:method name=“find*” read-only=“true”/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
- 事务参数的配置详解- <tx:method name="transfer" isolation="REPEATABLE_READ" propagation="REQUIRED"
-
timeout="-1" read-only=“false”/>
-
name:切点方法名称
-
isolation:事务的隔离级别
-
propogation:事务的传播行为
-
timeout:超时时间
-
read-only:是否只读
- CRUD常用配置 - <!--**CRUD常用配置**--> <tx:method name="save*" propagation="REQUIRED"/> <tx:method name="delete*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="find*" read-only="true"/> <tx:method name="*"/> - 3. 事务管理器AOP配置 - <!--AOP配置,配置切面-->
aop:config
<aop:advisor advice-ref=“txAdvice” pointcut=“execution(* com.lagou.service.impl.AccountServiceImpl.*(…))”></aop:advisor>
</aop:config>- 4. 测试事务控制转账业务代码