【发布时间】:2013-12-24 10:49:56
【问题描述】:
连接.java
public interface Connect {
void commit();
void close();
void setTransactional();
void executeCommand();
}
MainApp.java
public class MainApp {
public static void main(String[] args) {
Connect conn=MainApp.getTransactionalConnection();
conn.executeCommand();
conn.executeCommand();
conn.executeCommand();
conn.executeCommand();
closeConnection(conn);
}
public static Connect getNormalConnection(){
return DriverManager.getConnection(); //returns class i have no access to , dont even know its name
}
public static Connect getTransactionalConnection(){
Connect conn = getNormalConnection();
conn.setTransactional();
return conn;
}
private static void closeConnection(Connect conn) {
//something like if connection is transactional then conn.commit();
conn.close();
}
}
我得到了 100 个看起来像 main() 的函数。问题是我不想更改这 100 个函数的代码,只需将 1 行 getNormalConnection 更改为 getTransactionalConnection 。我没有访问权限,也不知道实现 Connect 接口的类的名称。无论我是否创建了事务连接,我都只想向 closeConnection() 添加提交。
【问题讨论】:
标签: java sql servlets connection