mybatis 事务

一个加了事务的方法执行了两次相同的查询,其中两次查询之中我加了一个睡眠三十秒

在这睡眠三十秒之中,我用另外一个方法修改了这条数据.

但是这两次查询的结果是一样的.

如果我把事务去掉,两次查询结果就不一样了.

为啥呢???

查询方法加什么事务啊。。

事务的特性中,有一个隔离性。即使多个用户同时访问数据库,他们访问的数据也是相互隔离,互不干扰

1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这条新纪录就是幻想。

2、不可重复读取:事务T1读取一行记录,紧接着事务T2修改了T1刚刚读取的记录,然后T1再次查询,发现与第一次读取的记录不同,这称为不可重复读。

3、脏读:事务T1更新了一行记录,还未提交所做的修改,这个T2读取了更新后的数据,然后T1执行回滚操作,取消刚才的修改,所以T2所读取的行就无效,也就是脏数据。