使用connection.createStatement().executeQuery(String query);?是否安全?

jav*_*nix 1 java mysql jdbc

这样做是否安全connection.createStatement().executeQuery(String query);,或者是否应该java.sql.Statement在每次使用时通过"手"创建和关闭每个对象,即使连接在finally块中关闭也是如此?

如果通过一个连接在一个方法中执行多个查询,则在实例化和关闭每个语句不是绝对必要的情况下,它将使用更少的代码.

Bal*_*usC 10

确实,Connection几乎所有JDBC驱动程序实现中的关闭也隐式关闭了Statement.但是,一个很大但是,当你使用连接池(并且你想使用一个因为这极大地提高了连接性能)时,它close()不会关闭Connection,而是将其释放回池中,从而保持Statement打开状态.当你经常这样做时,你迟早会耗尽资源,这可能会导致你的应用程序死机.

始终获取并关闭所有三种资源Connection,StatementResultSet在尽可能短的范围内,没有任何借口.