如果您正在开发桌面 Java 应用程序,您将不会使用连接池。连接池由 Java 应用程序服务器(Tomcat、JBoss、Glassfish)管理,在桌面 Java 应用程序中不可用。
如果您只进行一次更新,保持连接打开是合理的。
此外,批量更新对您来说是个好主意:
String connectionURL = "jdbc:mysql://localhost:3306/database";
Connection con = null;
PreparedStatement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(connectionURL);
stmt = con.prepareStatement(statement);
for (Object o : list) { // this is a list of your Java entity class
stmt.setString(1, "foo"); // this is to update the parameters in the PreparedStatement
stmt.setString(2, "bar");
stmt.addBatch(); // this adds the PreparedStatement to the batch of statements to execute
}
stmt.executeBatch();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
}
批量更新的想法是有一个准备好的语句,您可以在其中简单地更改参数,并将“新”语句添加到一批语句中。然后,您可以在调用 stmt.executeBatch() 时一次性执行它们
但是,如果您有许多这样的语句,我建议您一次执行大约 30 条语句。否则,如果程序崩溃/失败,您将陷入困境。