Spring程序化事务管理

时间:2015-08-13 05:32:54

标签: spring spring-jdbc

我是Spring事务管理的新手,我想知道我删除了TransactionStatus status = transactionManager.getTransaction(def);和transactionManager.commit(status);记录是否仍会保存到数据库中?

TransactionStatus status = transactionManager.getTransaction(def);

  try {
     String SQL1 = "insert into Student (name, age) values (?, ?)";
     jdbcTemplateObject.update( SQL1, name, age);

     // Get the latest student id to be used in Marks table
     String SQL2 = "select max(id) from Student";
     int sid = jdbcTemplateObject.queryForInt( SQL2 );

     String SQL3 = "insert into Marks(sid, marks, year) " + 
                   "values (?, ?, ?)";
     jdbcTemplateObject.update( SQL3, sid, marks, year);

     System.out.println("Created Name = " + name + ", Age = " + age);
     transactionManager.commit(status);

1 个答案:

答案 0 :(得分:0)

因为始终建议将数据库保持在一致状态,并且您的事务应该是原子的。删除事务管理可能违反该原则。
或者,您可以使用@Transactional注释,这可以为您节省大量的样板代码。