如何防止虚读,脏读,幻读

我是通过最近简单的JSP+SERVLE+JDBC的方式做的骨架,在DAO层每个方法前加synchronized会防止防止虚读,脏读,幻读的现象发生吗?在一个项目中,这样做好吗?如果不好 该如何做呢?

根据业务的实际需求采用不同的数据库事务隔离级别。
未提交读(read uncommitted)
提交读(read committed)
重复读(repeatable read)
序列化(serializable)
一般用read committed就可以了。这也是oracle默认的事务级别。

在jdbc里面设置事务的级别,这样才是有效的办法,至于synchronized,没有试过!

这样做肯定不好,太浪费资源了,加了这个后,差不多就是只有一个人在操作(其实大部分时候是没有必要的).还是慎重用这个.