日期:2014-05-20  浏览次数:20628 次

如何在TimerTask中使用传入的connection对象
我需要在程序中定时去oracle表中取数据,然后写入另一个sql server表,以前的方法是现设置一个定时器TimerTask,然后每次连接两端的数据库,然后关闭连接,但这样效率很不好,想一次性建立起两端的连接,当程序退出时才关闭Connection对象,只在定时器每次操作时创建Statement和ResultSet对象并关闭,可是问题是TimerTask类的run方法没有参数,我创建好的Connection对象不能作为行参传进来,请问哪位高手有好的解决办法?或者有更好的解决这个问题的思路呢?谢谢

------解决方案--------------------
run方法没有参数,可是继承TimerTask的这个类中是可以有属性的:
public class Worker extends TimerTask {

private static Connection oracleConnection = null ;
private static Connection sqlserverConnection = null ;

private static Connection getOracleConnection() {
if(oracleConnection == null)
buildOracleConnection();
return oracleConnection ;
}

private static void buildbuildOracleConnection() {
//初始化oracleConnection并打开
}
......
public void run() {
oraconn = Worker.getgetOracleConnection();
......
}
}