我继承的代码有很多这种形式的事务代码方法:
public void addCourseToCourses(String values)
{
try
{
conn.setAutoCommit(false);
}
catch (SQLException e)
{
Logger.getLogger(connDb.class.getName()).log(Level.SEVERE, null, e);
return;
}
try
{
stmt.executeUpdate("insert into courses values " + values);
conn.commit();
}
catch (SQLException e)
{
try
{
conn.rollback();
}
catch (SQLException ex)
{
Logger.getLogger(connDb.class.getName()).log(Level.SEVERE,null, ex);
}
}
finally
{
try
{
conn.setAutoCommit(true);
}
catch (SQLException ex)
{
Logger.getLogger(connDb.class.getName()).log(Level.SEVERE,null, ex);
}
}
}
方法之间不同的可变部分是
stmt.executeUpdate("insert into courses values " + values);
有时是多次插入,有时是删除。我想念使用来自 C++ 的宏,但我确信有一种方法可以不为每种方法重复所有这些事务代码。
帮助 ?
(conn 和 stmt 是 java.sql.Connection 和 java.sql.Statement 类型的类成员)