try{
       conn= getConnection();
       conn.setAutoCommit(false);
       stm=conn.createStatement();
       StringTokenizer st = new StringTokenizer(Sqls,split);
//sqls代表多条sql语句,以##分割
       while (st.hasMoreTokens()) {
       sql1= (st.nextToken()).trim();
       if(!sql1.equals("")){
         stm.addBatch(sql1);
         
       }
      }
      stm.executeBatch();
      conn.commit();
     }
     catch(Exception e){
      System.out.println("update:"+Sqls);
          try{
                 conn.rollback();
          }
          catch(Exception ex){
                  System.out.println("异常信息" + e.getMessage());
          }
            
             if(e.getMessage().indexOf("PRIMARY KEY")>0)
                throw new DbUpdateException("PRIMARY KEY");
             else
              throw new DbUpdateException();
     }
问题是,如果某条语句出错,为什么不回滚?有一部分数据插入表中