Spring 学习03
一、上节内容回顾
1 注解ioc操作
(1)使用注解创建对象
- 四个注解
(2)使用注解注入属性
- 两个注解
2 aop
(1)aop原理
(2)aop术语
- 切入点
- 增强
- 切面
3 spring的aop操作
(1)基于aspectj的xml方式
二、今天内容介绍
1 基于aspectj的注解aop操作(会用)
2 spring的jdbcTemplate操作
(1)实现crud操作
- 增加、修改、删除,调用模板update方法
- 查询某个值时候,调用queryForObject方法
--- 自己写实现类封装数据
- 查询对象,调用queryForObject方法
- 查询list集合,调用query方法
3 spring配置连接池
(1)配置c3p0连接池
(2)dao注入jdbcTemplate操作
4 spring事务管理
(1)事务概念
(2)spring进行事务管理api
- spring针对不同的dao层框架提供不同的实现类
(3)spring进行事务配置(声明式)
- 基于xml配置文件
- 基于注解方式
三、基于aspectj的注解aop
1 使用注解方式实现aop操作
第一步 创建对象
第二步 在spring核心配置文件中,开启aop操作
第三步 在增强类上面使用注解完成aop操作
四、Spring的jdbcTemplate操作
1 spring框架一站式框架
(1)针对javaee三层,每一层都有解决技术
(2)在dao层,使用 jdbcTemplate
2 spring对不同的持久化层技术都进行封装
(1)jdbcTemplate对jdbc进行封装
3 jdbcTemplate使用和dbutils使用很相似,都数据库进行crud操作
增加
1 导入jdbcTemplate使用的jar包
2 创建对象,设置数据库信息
3 创建jdbcTemplate对象,设置数据源
4 调用jdbcTemplate对象里面的方法实现操作
修改
删除
查询
1 使用jdbcTemplate实现查询操作
2 查询具体实现
第一个 查询返回某一个值
(1)第一个参数是sql语句
(2)第二个参数 返回类型的class
Jdbc实现
第二个 查询返回对象
第一个参数是sql语句
第二个参数是 RowMapper,是接口,类似于dbutils里面接口
第三个参数是 可变参数
第三个 查询返回list集合
(1) sql语句
(2) RowMapper接口,自己写类实现数据封装
(3) 可变参数
Spring配置连接池和dao使用jdbcTemplate
1 spring配置c3p0连接池
第一步 导入jar包
第二步 创建spring配置文件,配置连接池
(1)把代码在配置文件中进行配置
2 dao使用jdbcTemplate
(1)创建service和dao,配置service和dao对象,在service注入dao对象
(2)创建jdbcTemplate对象,把模板对象注入到dao里面
(3)在jdbcTemplate对象里面注入dataSource
五、Spring的事务管理
事务概念
1 什么事务
2 事务特性
3 不考虑隔离性产生读问题
4 解决读问题
(1)设置隔离级别
Spring事务管理api
1 spring事务管理两种方式
第一种 编程式事务管理(不用)
第二种 声明式事务管理
(1) 基于xml配置文件实现
(2) 基于注解实现
2 spring事务管理的api介绍
(1)spring针对不同的dao层框架,提供接口不同的实现类
(2)首先 配置事务管理器
搭建转账环境
1 创建数据库表,添加数据
2 创建service和dao类,完成注入关系
(1)service层又叫业务逻辑层
(2)dao层,单纯对数据库操作层,在dao层不添加业务
(3)需求:小王 转账 1000 给 小马
- 小王少1000
- 小马多1000
3 产生问题:
(1)如果小王少了1000之后,出现异常,小马不会多1000,钱丢失了
4 解决:
(1)添加事务解决,出现异常进行回滚操作
声明式事务管理(xml配置)
1 配置文件方式使用aop思想配置
第一步 配置事务管理器
第二步 配置事务增强
第三步 配置切面
声明式事务管理(注解)
第一步 配置事务管理器
第二步 配置事务注解
第三步 在要使用事务的方法所在类上面添加注解