不好意思,没分了。 
使用mysql 5.0.21
java代码如下: try   {  
          con.setAutoCommit(false);  
          ......  
          ......  
          con.commit();  
  }  
  catch   (SQLException   e)   {  
          try   {  
                    con.rollback();  
          }  
          catch   (SQLException   ee)   {}  
  }  
  con.rollback()也执行了,但以前的sql语句(如insert)却执行了,而没有rollback
请问该如何解决,是不是要事先对数据库进行配置。

解决方案 »

  1.   

    代码没问题,rollback如果执行了就不会insert
      

  2.   

    如果表的引擎是 MyISAM 的话是不支持事物回滚的,在 MySQL 中只有 InnoDB 引擎支持事务操作,可以将该表的数据引擎改为 InnoDB 再试试看。使用:SHOW TABLE STATUS FROM <数据库名> LIKE '<表名>'; 来查看数据表的引擎;使用:ALTER TABLE <表名> ENGINE = InnoDB; 更改。