java.sql.Statement
java.sql.Statement是SQL语句接口。
| 方法名 | 返回值类型 | 支持JDBC 4 |
|---|---|---|
| close() | void | Yes |
| execute(String sql) | boolean | Yes |
| executeQuery(String sql) | ResultSet | Yes |
| executeUpdate(String sql) | int | Yes |
| getConnection() | Connection | Yes |
| getResultSet() | ResultSet | Yes |
| getQueryTimeout() | int | Yes |
| getUpdateCount() | int | Yes |
| isClosed() | boolean | Yes |
| setQueryTimeout(int seconds) | void | Yes |
| setFetchSize(int rows) | void | Yes |
| cancel() | void | Yes |
通过setFetchSize可以减少结果集在客户端的内存占用情况。它的原理是通过将结果集打包成游标,然后分段处理,所以会加大数据库与客户端的通信量,会有性能损耗。
由于数据库游标是事务内有效,所以,在设置setFetchSize的同时,需要将连接设置为非自动提交模式,setAutoCommit(false)。同时在业务数据需要持久化到数据库中时,在连接上执行提交操作。