zoukankan      html  css  js  c++  java
  • Spring 设置readonly 事务只读模式

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt394

    在学习spring事务的时候,发现设置readOnly后不启作用。

    查阅资料后发现对spring事务中readOnly的定义理解有错,与oracle中的事务隔离级别read-only混淆。

    oracle中的事务隔离级别定义:只读事务只能看到事务执行前就已经提交的数据,且事务中不能执行 INSERT , UPDATE ,及 DELETE 语句。

    spring中readOnly的定义:This just serves as a hint for the actual transaction subsystem;it will not necessarily cause failure of write access attempts.

    spring的readOnly事务是对java中jdbc的封装,java中connection.setReadOnly(boolean)的定义:Puts this connection in read-only mode as a hint to the driver to enable database optimizations.

    结论:spring中readOnly的定义,并不是不能在事务中进行修改等DML操作,它只是一个“暗示”,提示数据库驱动程序和数据库系统,这个事务并不包含更改数据的操作,那么JDBC驱动程序和数据库就有可能根据这种情况对该事务进行一些特定的优化,比方说不安排相应的数据库锁,以减轻事务对数据库的压力,毕竟事务也是要消耗数据库的资源的。

  • 相关阅读:
    ●单例模式
    ●扩展方法
    ●存储过程比sql语句慢
    ●rownum() over()
    ●日期格式化
    ●sql优化
    VS建立Web网站 20141201
    ORM操作(一) 20141128
    流的操作20141104
    控件:菜单、工具栏、状态栏及TreeView的操作 20141103
  • 原文地址:https://www.cnblogs.com/grefr/p/6088014.html
Copyright © 2011-2022 走看看