Spring的入门案例5

1.ThreadLocal介绍:

 

ThreadLocal介绍:

 

2.Spring整合JDBC

1.JDBC回顾:

1.导入jar

2.配置数据库连接

3.获取数据源

 

2.整合JDBC

1.添加jar包

 

2.编译配置文件

3.jdbc写法

jdbc.driver=com.mysql.jdbc.Driver

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

jdbc.user=root

jdbc.password=root

 

3.SpringJDBC调用:

4.SpringJDBC模板类

1.移入模板类

2.使用模板

 

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

1.实现接口

2.测试方法

6.自动生成转化模板

说明:

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

 

7.声明式事务处理

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

 

1.配置头标签:

2.配置事务管理器

3.配置事务通知

 

4.配置事务切面

8.readOnly的作用

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

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调用,不能保证事务的一致性

分析:

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

 

说明:

web:

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

Service:

只处理业务逻辑

Dao

只处理sql语句

 

11.缓存处理:

缓存的作用:

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

调用过程:

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

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

 

题目:

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

 

分析:

1.采用AOP的思想编辑

2.环绕通知

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

 

补充:

 

1.@Before

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岁月玲珑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值