Spring的入门案例5

1.ThreadLocal介绍:

Spring的入门案例5

 

ThreadLocal介绍:

Spring的入门案例5

 

2.Spring整合JDBC

1.JDBC回顾:

1.导入jar

2.配置数据库连接

3.获取数据源

 

2.整合JDBC

1.添加jar包

Spring的入门案例5

 

2.编译配置文件

Spring的入门案例5

3.jdbc写法

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/spring

jdbc.user=root

jdbc.password=root

 

3.SpringJDBC调用:

Spring的入门案例5

4.SpringJDBC模板类

1.移入模板类

Spring的入门案例5

2.使用模板

Spring的入门案例5

 

5.通过模板对象实现自动转化

1.实现接口

Spring的入门案例5

2.测试方法

Spring的入门案例5

6.自动生成转化模板

Spring的入门案例5

说明:

如果追求效率 ,使用手动映射,如果追求简单,使用自动映射

 

7.声明式事务处理

该方法时spring采用AOP的设计模式,自动进行的事务代码的封装,如果程序中,使用声明式事务处理,从此程序员,无需关注事务控制。

 

1.配置头标签:

Spring的入门案例5

2.配置事务管理器

Spring的入门案例5

3.配置事务通知

Spring的入门案例5

 

4.配置事务切面

Spring的入门案例5

8.readOnly的作用

如果在声明式事务处理中,配置了read-only则不允许,除增删改查,之外的数据操作数据库。否则违反spring的规定报错。

Spring的入门案例5

9.Spring的事务策略

1.异常的分类

1.编译异常(检查异常)

编辑代码时,会明确的告知可能会有错误,让程序自己处理

2.运行时异常

空指针异常、数组下标越界、类转化异常、算数异常

 

2.说明:

声明式事务处理规则,如果程序执行中有运行时异常,则实现事务的回滚,如果程序执行中遇到编译异常。则直接放行,不予回滚。

 

3.修改默认的事务策略

 rollback-for="java.sql.SQLException"

指定异常类型进行回滚

 

no-rollback-for="java.lang.RuntimeException"

指定类型不回滚

 

10.多表同时操作的注意事项

1.新增user

2.新增person

 

问题:

如何控制多表 同时插入??

如果插入操作时报错了,2条数据都应该回滚。

 

错误分析:

该代码中通过2Serivce调用,不能保证事务的一致性

Spring的入门案例5

分析:

如果同时做新增操作,应该在service层中添加,因为只有serivce才能保证事务的一致性。

Spring的入门案例5

 

说明:

web:

只负责数据的封装,数据的传递,转发和重定向

Service:

只处理业务逻辑

Dao

只处理sql语句

 

11.缓存处理:

缓存的作用:

能将一些常用的数据加入到缓存中,之后用户再次获取数据时,不用连接数据库,可以从缓冲中获取数据,提高程序执行效率

Spring的入门案例5

调用过程:

1.当用户第一次请求数据时,先通过服务器,调用数据库获取数据。之后将数据存入缓存中,进行保存。

2.当用户再次请求数据时,先从缓存中获取数据,如果缓存中有该数据则直接返回,如果缓存中没有该数据,则连接数据库再次查询。

 

题目:

要求:当用户根据Id查询数据时,使用缓存操作。

 

分析:

1.采用AOP的思想编辑

2.环绕通知

3.缓存使用Map<key,value>

Spring的入门案例5

Spring的入门案例5

 

补充:

 

[email protected]

Spring的入门案例5

在测试类中添加@Before表示,在每次执行@Test方法之前都会执行before下的方法。