1.数据库事务
概念:
数据库的事务是一种机制,一个操作序列,包含了一组数据库的操作命令;事务把所有的命令都作为一个整体一起向系统提交或撤销操作,即这一组数据库命令要么同事成功,要么同时失败;我们把事务看作是一个不可分割的工作逻辑单元;
事务管理关键字:
MySQL事务管理:
--开启事务 --START TRANSACTION 或者 BEGIN;
--提交事务 --COMMIT;
--回滚事务 --ROLLBACK;
JDBC事务管理:Connection接口定义了3个对应的方法:
--开启事务 :setAutoCommit(boolean) :true为自动提交事务;false为手动提交事务,即开启事务;
--提交事务 :commit();
--回滚事务 :rollback();
在java里面使用异常处理机制 try catch来进行事务运行管理的代码编写;
事务的四大特征:
原子性(Automicity):事务是不可分割的最小操作单位,要么同时成功,要么失败;
一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态(数据总额不发生变化);
隔离性(Isolation):多个事务(多个操作窗口)之间,操作的可见性;隔离性越强,操作越不可见,性能越低,反之性能越高;
持久性(Durability):事务一旦提交或者回滚,它对数据库的改变就是永久的;
事务的默认自动提交:
我们知道在进行数据更改的时候,数据是会实时变更的,这是因为数据库默认就是自动提交数据的;
可以通过:select @@autocommit;语句来查询它的提交方式,默认的值是1;
可以通过:set @@autocommit = 0;语句来修改它的提交方式为手动,这样如果要永久性地修改数据,
就必须要手动提交;
在spring mvc模型里,在service层里通过加注解:@Transactional ,该注解可用于方法、实现类、接口上,被注解的方法需要声明在接口里面,因为该注解是基于动态代理实现的,就是在方法前后增加开启,提交事务的逻辑,而事物的回滚基于异常的捕捉
2.分清cookie,session,token
2.1、基础概念
Http是一种无状态的协议(对于事务处理没有记忆能力,服务端不会保存任何会话信息,如果想要跟踪会话,需要主动维护一个信息去保留会话信息,这个信息可以是cookie或者session)
现在上网想要对服务器发送请求一般都要进行登录操作,而登录操作以及后续请求是基于认证、授权与凭证这