springmvc mybatis 数据库是mysql 事务处理

我使用的框架是springmvcmybatis,数据库是mysql(表引擎是innodb)这样的情况下,我给增删改都添加了事务处理,那我的查询是否有必要加事务呢?@Tra... 我使用的框架是springmvc mybatis,数据库是mysql(表引擎是innodb) 这样的情况下,我给增删改都添加了事务处理,那我的查询是否有必要加事务呢?@Transactional(propagation = Propagation.NOT_SUPPORTED) 还是 @Transactional(propagation = Propagation.REQUIRED, readOnly = true) 有什么区别吗 展开
 我来答
isc039
2014-08-20 · TA获得超过7.8万个赞
知道小有建树答主
回答量:744
采纳率:0%
帮助的人:434万
展开全部
  1. 在查询时,有时会出现一种“脏读”的现象,即你一次执行多条查询,但在查询过程中数据发生了修改。
    比如说,你发送了两条SQL语句,完成部门和员工信息的检索,但在你检索出部门信息之后,有人更改了部门号这个数据,于是你可能一个员工都检索不出来。

    不启动事务的查询,数据库的更新会反映在你的查询结果之内,导致检索结果不正确。

    启动事务的查询,在查询结束之前,数据库的更新不会影响到你的查询结果。

  2. @Transactional(propagation = Propagation.REQUIRED, readOnly = true) 是一个只读事务,可以加快事务的处理速度。

追问

我现在遇到了一种情况:就是我的项目部署之后,开始

查询的时候,第一次可以查出结果。可是如果我用sqlyog或是navicat对数据库里面的表数据修改后查询到的和第一次的结果一样,不是最新的数据,好像是从缓存拿出来的。    麻烦问一下:这是什么原因造成的呢?  但是做成一个只读事务就好了

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式