mybatis --- 事务

mybatis的事务配置

数据库事务:数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,
这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务
结束之间执行的全部数据库操作组成。
破坏了完整性和一致性。

ACID:

1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部
不执行。
2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序,串行执行的结
果相一致。
3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须
是透明的。
4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,
即使数据库出现故障。
事务的 ACID 特性是由关系数据库系统(DBMS)来实现的,DBMS采用日志来保证事务的原子
性、一致性和持久性。日志记录了事务对数据库所作的更新,如果某个事务在执行过程中发生错
误,就可以根据日志撤销事务对数据库已做的更新,使得数据库回滚到执行事务前的初始状态。
对于事务的隔离性,DBMS是采用锁机制来实现的。当多个事务同时更新数据库中相同的数据
时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事
务才有机会更新该数据。
数据库读操作是不需要事务的。只要写操作才需要配置事务。

使用Mybatis如何配置事务?

1.需要借助spring aop。aop指的是面向切面编程。
2.spring aop配置的事务是基于异常的检测来进行回滚,所以一定不能自己手动捕获异常。
拦截器:

  1. 需要在springmvc的配置文件中中配置拦截器。
  2. 编写实现类,实现HandlerInterceptor接口
    Interceptor:拦截器。
    spring拦截器:
    spring登录:

拦截器和过滤器的区别?

  1. 过滤器是属于javaee中的组件,在web.xml中定义过滤器。而拦截器是springmvc的组件,
    需要引入springmvc,并且在配置文件中配置拦截器。
  2. 过滤器是在到达servlet之前生效。而拦截器是在到达DispatcherServlet之后,分发给
    Controller之前生效。
  3. 拦截器,可以注入spring上下文中的对象。但是过滤器不行,因为过滤器先于spring和
    springmvc而创建。
  4. 过滤器和拦截器提供的要实现的接口方法不一致。
<!-- 配置拦截器 -->
<mvc:interceptors>
<!-- 配置其中一个拦截器 -->
<mvc:interceptor>
<mvc:mapping path="/student/list"/>
<!-- 配置拦截器实现类 -->
<bean class="com.situ.interceptors.HelloWorldIntercepto
r" />
</mvc:interceptor>
<mvc:interceptor>
<!-- 要拦截的url匹配模式 -->
<mvc:mapping path="/**"/>
<!-- 不被拦截的url匹配模式 -->
<mvc:exclude-mapping path="/login"/>
<bean class="com.situ.interceptors.LoginInterceptor"></b
ean>
</mvc:interceptor>
</mvc:interceptors>

spring异常处理:

  1. 在Controller中定义方法,并添加注解@ExceptionHandler,那么此方法可以处理所在controller中出现的异常。缺点:仅对当前controller有效。
  2. 全局统一异常处理:@ControllerAdvice

spring验证码:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

A little sea pig

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

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

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

打赏作者

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

抵扣说明:

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

余额充值