这样写算事务吗?
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();
}
问题是,如果某条语句出错,为什么不回滚?有一部分数据插入表中