我已经使用 MySQL 很长时间了,我知道我应该一次只打开一个连接。
但现在我还有一个我认为尚未提出的问题。如果是这样,请不要责怪我,因为我还找不到答案。
每次运行 MySQL 查询或更新时,我都会打开一个新语句,如下所示:
Statement st = c.createStatement();
ResultSet res = st.executeQuery("SELECT * FROM ...;");
...
st = c.createStatement();
st.executeUpdate("INSERT INTO ...;");
...
st = c.createStatement();
res = st.executeQuery("SELECT * FROM ...;");
...
首先。是否可以为所有查询和更新创建一个语句?像这样:
Statement st = c.createStatement();
ResultSet res = st.executeQuery("SELECT * FROM ...;");
...
st.executeUpdate("INSERT INTO ...;");
...
res = st.executeQuery("SELECT * FROM ...;");
...
我的另一个问题是,我是否必须最终关闭这些语句,或者 Java 是否会自动执行此操作。
最佳答案
您可以多次使用Statement
。如果每次都创建另一个 Statement
对象,效率会很低。
对于 JDBC 4.0 及更早版本(Java 6 及更早版本):
- 连接关闭时语句也随之关闭
因此,如果您关闭连接,则不必担心关闭语句。讨论了关闭连接here
关于java - MySQL每次都打开一个新的Statement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37883973/