本帖最后由 on_my_way20xx 于 2010-04-14 10:00:54 编辑

解决方案 »

  1.   

    spring都是自动提交事务的哦  public boolean addMeasMent(Measurement meas) throws Exception {           
               boolean flag = true;
          try{
               String add = "insert into t_measurement values(?,?,?,?,?)";
               jdbcTemplate.update(add, new Object[]{meas.getProd_id(),
                                            meas.getMeas_measuring_name(),
                                            meas.getMeas_standard(),
                                            meas.getMeas_update_user(),
                                            meas.getMeas_update_DT()});
                            
            }catch(Exception ex){
                   flag = false;
               ex.printStackTrace();
               
            }        
            return flag;
        }
      

  2.   


    绝对不是,手动commit的话,一条都插入不了.
      

  3.   

    引用 2 楼 xinlan1022 的回复:
    spring都是自动提交事务的哦Java code
    public boolean addMeasMent(Measurement meas) throws Exception { 
    boolean flag = true;
    try{
    String add = "insert into t_mea……绝对不是,如果不手动commit的话,一条都插入不了.
      

  4.   

    问楼主一下,applicationContext.xml文件用了吗?用Spring的好处就是可以自己不去管理事务,否则我干脆直接用Hibernate了。你这样显示的调用事务打开关闭的,那还用Spring就显得多余了。Spring的事务一般配置到业务方法级别的,因为业务方法可能要调用多个DAO去处理一个业务,当其中有一个失败那么整个事务回滚。说了一堆就是你可以在配置文件里配置事务,而不是自己去显示的写有关事务的代码。
      

  5.   

    谢谢兄弟,我一直都没关注在applicationContext.xml中,配置事务... 我去查查资料.只是,我的这个问题是不是就是由于我显式的调用事务导致的呢?
      

  6.   

    你有用spring   那你先去试试用spring配置事物先做下  看下效果!
      

  7.   

    确实如2楼和6楼兄弟所说,采用TransactionTemplate的execute(TransactionCallback arg)方式
    或者用声明式事务处理 都可以解决.
      

  8.   

    Transaction 建议在Service层配置,用Spring2.5X的,可通过在方法前加@Transactional注释解决,不建议在DAO层配置,另外注意,你在代码内Catch Exception 的话,假如try 里面的代码出错会导致事务的rollback 失败!建议你throws Exception!