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思想配置
第一步 配置事务管理器
第二步 配置事务增强

第三步 配置切面

声明式事务管理(注解)
第一步 配置事务管理器

第二步 配置事务注解

第三步 在要使用事务的方法所在类上面添加注解

Spring 学习03的更多相关文章
- spring学习(03)之bean实例化的三种方式
bean实体例化的三种方式 在spring中有三中实例化bean的方式: 一.使用构造器实例化:(通常使用的一个方法,重点) 二.使用静态工厂方法实例化: 三.使用实例化工厂方法实例化 第一种.使用构 ...
- Spring学习03
6.Bean的自动装配 6.1 自动装配说明 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean. Spring中bean的三种装配机 ...
- Spring学习03(Bean的自动装配)
6.Bean的自动装配 6.1 自动装配说明 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean. Spring中bean的三种装配机 ...
- Spring学习03——AOP Demo
切面类StudentServiceAspect.java package com.su.advice; import org.aspectj.lang.JoinPoint; import org.as ...
- Spring学习之——手写Spring源码V2.0(实现IOC、D、MVC、AOP)
前言 在上一篇<Spring学习之——手写Spring源码(V1.0)>中,我实现了一个Mini版本的Spring框架,在这几天,博主又看了不少关于Spring源码解析的视频,受益匪浅,也 ...
- spring 学习之 bean 的注入方式 property和constructor-arg的使用方式
spring 学习之 bean 的注入方式 property和constructor-arg的使用方式. bean的注入方式: property 注入是: 通过setxx方法注入. construct ...
- JavaScript学习03 JS函数
JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...
- Java虚拟机JVM学习03 连接过程:验证、准备、解析
Java虚拟机JVM学习03 连接过程:验证.准备.解析 类被加载后,就进入连接阶段. 连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去. 连接阶段三个步骤:验证.准备和解析. 类 ...
- Spring学习之AOP总结帖
AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...
随机推荐
- leetcode:Reverse Integer 及Palindrome Number
Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, retur ...
- js Dom 编程
1. 节点及其类型: 1). 元素节点 2). 属性节点: 元素的属性, 可以直接通过属性的方式来操作. 3). 文本节点: 是元素节点的子节点, 其内容为文本. 2. 在 html 文档的 ...
- codeforces116B
Little Pigs and Wolves CodeForces - 116B Once upon a time there were several little pigs and several ...
- quartz 配置
<bean id="quartzJob" class="com.wistron.swpc.detaillog.common.SwfitFileAnalysis&qu ...
- asp.net 连接SQL Server 数据库并进行相关操作
asp.net 连接数据库,操作数据库主要需要两个类,一个是SqlConnection,一个是SqlCommand SqlConnection用于连接数据库,打开数据库,关闭数据库. 连接数据库需要特 ...
- Django-website 程序案例系列-3 URL详解
django参考资料:http://docs.30c.org/djangobook2/index.html urls.py是django中控制接收前端的参数指定函数去执行逻辑 第一种 函数的方式 ur ...
- MT【26】ln(1+x)的对数平均放缩
评:1.某种程度上$ln(1+x)\ge \frac{2x}{2+x}$是最佳放缩. 2.这里涉及到分母为幂函数型的放缩技巧,但是不够强,做不了这题.
- Android 屏幕操作
1 全屏显示Activity 代码 : 方法一:编程实现 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, Window ...
- 洛谷 P1984 [SDOI2008]烧水问题 解题报告
P1984 [SDOI2008]烧水问题 题目描述 把总质量为1kg的水分装在n个杯子里,每杯水的质量均为(1/n)kg,初始温度均为0℃.现需要把每一杯水都烧开.我们可以对任意一杯水进行加热.把一杯 ...
- luogu2178/bzoj4199 品酒大会 (SA+单调栈)
他要求的就是lcp(x,y)>=i的(x,y)的个数和a[x]*a[y]的最大值 做一下后缀和,就只要求lcp=i的了 既然lcp(x,y)=min(h[rank[x]+1],..,[h[ran ...