Java 使用JDBC语句批处理的正确方法

Java 使用JDBC语句批处理的正确方法,java,sql,batch-file,statements,Java,Sql,Batch File,Statements,尝试使用sql语句批处理执行以下操作:每5分钟向批处理(当前计数器)添加一条语句,然后每小时发送一次,将语句发送到数据库 不过我很好奇,我是否需要在添加语句/连接或发送批处理时重新初始化该语句/连接 我想我会这样做,只是需要澄清一下如何做得更聪明,或者这是否是最好的方法 在程序启动时,初始化以下内容 Connection connection = null; Statement statement = null; Class.forName("com.mysql.

尝试使用sql语句批处理执行以下操作:每5分钟向批处理(当前计数器)添加一条语句,然后每小时发送一次,将语句发送到数据库

不过我很好奇,我是否需要在添加语句/连接或发送批处理时重新初始化该语句/连接

我想我会这样做,只是需要澄清一下如何做得更聪明,或者这是否是最好的方法

在程序启动时,初始化以下内容

    Connection connection = null;
    Statement statement = null;
        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/youtube", "root", "root");
    statement = connection.createStatement();
然后每5分钟。。。。 addToBatch(连接、报表、计数器、时间、日期)

然后一个小时。。。 语句。executeBatch()

我遗漏了什么吗?我需要重新建立连接吗


任何信息都有帮助,谢谢

最好将查询信息保存在一个简单的列表中,然后在需要时创建批处理和添加语句

  • 您的连接可能在客户端(连接池设置)或服务器端超时。例如,在MySql参数中
  • 即使它没有关闭,不必要地长时间占用数据库资源也不是一个好主意

  • 希望有帮助。

    您可以将autoReconnect=true参数添加到连接字符串中

    您“可以”在某种类型的
    列表中维护每个请求
    ,并且只需每小时生成一次批处理……但这是必要的吗?或者我的理论会很好用?你的想法是,如果我最初的想法不起作用,我将如何去做,这取决于JDBC驱动程序和数据库服务器。他们可能会清理陈旧的连接,以减少资源负载/COG…在应用程序级别长时间保留系统资源总是一个坏主意。我很好奇,为什么你只想在一小时内将数据发送到数据库,这会导致使用率峰值。似乎更明智的做法是每小时只打开一次连接,然后立即发送查询,而不是每隔几分钟发送一次小峰值。比如字符串列表?公共LinkedList增益=新建LinkedList();对您可以使用List gains=new ArrayList();也看到