所以我目前正在开发一个 Java 应用程序,该应用程序应该将特定事件记录到数据库中。我希望每分钟最多有 15 到 20 次插入,基本上我想知道我是否应该为每个插入语句建立一个新连接,或者只要应用程序正在运行就保持一个打开。
我正在做的是:
public void logEvent(MyCustomEvent e) {
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
st.executeUpdate("INSERT INTO Table(" + e.data + ");");
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(MySQLConnector.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(MySQLConnector.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
}
}
}
每次建立新连接都没有问题,还是我可以/应该以某种方式缓冲输入?
最佳答案
建立联系的成本很高,所以最好不要一直建立联系。然而,一直保持一个连接打开有其自身的问题(如果它由于某种原因关闭会发生什么?)
为什么不看看数据库连接池 - 谷歌将为您展示几个相互竞争的连接池实现。您将两全其美。对于您的应用程序,连接似乎是永久打开的,但如果由于某种原因连接失败,连接池将为您重新打开它。
关于java - 缓冲 MySQL 查询或建立多个连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17275641/