Java 如何处理TimerTask内的数据库连接

Java 如何处理TimerTask内的数据库连接,java,Java,我每4分钟安排一个计时器任务,其任务是在mysql表中插入/更新值 我的问题是,我是否需要为每次迭代(run方法)建立DBConnection 我的部分代码 public class App { public static void main( String[] args ) { TimerTask task = new RunMeTask(); Timer timer = new Timer(); timer.schedule(

我每4分钟安排一个计时器任务,其任务是在mysql表中插入/更新值

我的问题是,我是否需要为每次迭代(run方法)建立DBConnection

我的部分代码

public class App 
{
    public static void main( String[] args )
    {
        TimerTask task = new RunMeTask();
        Timer timer = new Timer();
        timer.schedule(task, 1000,60000);
    }
}

public class RunMeTask extends TimerTask 
{
PreparedStatement inserpstmt = null;
Connection conn = null;
String insertsql = "";
    @Override
    public void run() {
        try {
            inserpstmt = conn.prepareStatement(insertsql);
            inserpstmt.setString(1, symbol);
            inserpstmt.setString(2, date);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

请提前通知我,谢谢

最好的方式是重复使用连接。如果您的TimerTask位于容器中,请使用该基础结构,您应该拥有数据库连接池,甚至可以享受容器管理事务的好处


如果这不适合您,请不要尝试自己共享连接。有一些实现,例如

简短的回答是肯定的,每次创建、读取、更新或删除数据库信息时,都必须建立数据库连接。