Spring的一个小应用,没有配置事务,用jdbcTemplate修改数据库的值是行的,也就是说使用了事务。具体是怎样的。
没配置事务时:
1,是否所有方法都会调用事务
2,Spring有没有什么自动判断事务的机制
3,是否可以不配置事务,对项目影响不大

解决方案 »

  1.   

    JDBC是直接对数据库进行修改,过程不可逆。不安全,对项目威胁很大。
      

  2.   

    是不是就是说,用hibernateTemplate的话,一定要配置事务,不然就不能操作数据库。jdbcTemplate和hibernateTemplate差别这么大?
      

  3.   

    说到底疑问就是spring不配置事务,就自动每个方法一个事务?
    还是因为是用了spring的jdbcTemplate,所以没配置事务,才会自动提交事务。
    而如果用hibernateTemplate或者其他组件的数据源,就一定要配置事务,才能对数据库操作。
      

  4.   

    我知道用hibernateTemplate不配置事务,是不能对数据库进行操作的,只能查看
      

  5.   

    jdbc默认是自动提交事务。
    是否Spring的jdbcTemplate就是jdbc,所以和jdbc一样
    而Hibernate的数据源是经过其他处理的数据源,事务不是默认自动提交的,所以要配置。
    如果是,除了Hibernate还有哪些数据源是不是默认自动提交事务的。
      

  6.   

    jdbcTemplate和jdbc不一样
    jdbcTemplate算是spring对jdbc的上一层封装
    所以还是保持了auto commit模式
    但是多了一层封装以后就能通过事务管理来直接操作jdbctemplate
    或者单独写事务管理代码
    java应该不存在不是默认自动提交的东东
    hibernate只能说又进行了封装。。
    hibernate俺不确定
    应该也可以吧
    直接获取native的数据源,然后jdbc操作实现。跳过事务配置。
    所以不能说hibernate就一定有事务管理
      

  7.   

    发现你和我一样遇到问题喜欢死扣,这样谈不上好或不好,反正会很累,而且容易让人失去学习的耐心。首先说一下配不配Spring事务和有没有事务没关系,即使ssh都不用,只要你和数据库打交道就会存在事务,如果不做任何处理,每一次对数据库的操作都是一个单独的事务。配置Spring的事务管理,是把事务的管理交给Spring来处理,不是因为配置Spring事务才存在事务。你最后一个问题是否可以不配置事务,对项目影响不大,可以这么说我没遇到过可以不用处理事务就能正确完成业务的系统,你可以不用Spring事务管理,但系统不能没有事务管理(除非你真有这么简单的系统)。