日期:2014-05-18  浏览次数:20738 次

MySQL中的事务

con.setAutoCommit(false);
sta.executeQuery("select .....")
sta.executeUpdate("update.....")
con.commit()

上面代码中的select要手动加锁吗?如果不加有没有可能一个用户把这个事务的select刚刚执行完还没有执行udpate之前,另一个用户也开始执行这个事务并执行select呢?

------解决方案--------------------
关注ing
------解决方案--------------------
项!,应该不会用的呢,但也可以给加上的呢,我想,数据库服务器,本身可以解决这个问题的呢,不用,每句话,都要由程序去写的呢,看一看吧,见高手之见吧.!
------解决方案--------------------
数据库服务器的任务,不知道mysql可不可以选择isolation level,如果可以的话,你可以通过选择isolation level来控制是去锁一行还是锁整个表等等。
------解决方案--------------------
还是听听吧
------解决方案--------------------
mysql默认的myisam表采用表级锁,不可以更改,修改的优先级别高于查询,如果要用实现你的说法又要用这种表那你就要写程序了。innodb表采用行锁,只锁正在修改的那一行。还有一种是页锁,不过mysql5.0的某个版本以后就不支持这种类型了。
------解决方案--------------------
问题是为什么要这么做呢