GaussDB-java.sql.Statement
java.sql.Statement是SQL语句接口。
| 方法名 | 返回值类型 | 支持JDBC4 |
|---|---|---|
| addBatch(String sql) | void | Yes |
| clearBatch() | void | Yes |
| clearWarnings() | void | Yes |
| close() | void | Yes |
| closeOnCompletion() | void | Yes |
| execute(String sql) | Boolean | Yes |
| execute(String sql, int autoGeneratedKeys) | Boolean | Yes |
| execute(String sql, int[] columnIndexes) | Boolean | Yes |
| execute(String sql, String[] columnNames) | Boolean | Yes |
| executeBatch() | Boolean | Yes |
| executeQuery(String sql) | ResultSet | Yes |
| executeUpdate(String sql) | int | Yes |
| executeUpdate(String sql, int autoGeneratedKeys) | int | Yes |
| executeUpdate(String sql, int[] columnIndexes) | int | Yes |
| executeUpdate(String sql, String[] columnNames) | int | Yes |
| getConnection() | Connection | Yes |
| getFetchDirection() | int | Yes |
| getFetchSize() | int | Yes |
| getGeneratedKeys() | ResultSet | Yes |
| getMaxFieldSize() | int | Yes |
| getMaxRows() | int | Yes |
| getMoreResults() | Boolean | Yes |
| getMoreResults(int current) | Boolean | Yes |
| getResultSet() | ResultSet | Yes |
| getResultSetConcurrency() | int | Yes |
| getResultSetHoldability() | int | Yes |
| getResultSetType() | int | Yes |
| getQueryTimeout() | int | Yes |
| getUpdateCount() | int | Yes |
| getWarnings() | SQLWarning | Yes |
| isClosed() | Boolean | Yes |
| isCloseOnCompletion() | Boolean | Yes |
| isPoolable() | Boolean | Yes |
| setCursorName(String name) | void | Yes |
| setEscapeProcessing(boolean enable) | void | Yes |
| setFetchDirection(int direction) | void | Yes |
| setMaxFieldSize(int max) | void | Yes |
| setMaxRows(int max) | void | Yes |
| setPoolable(boolean poolable) | void | Yes |
| setQueryTimeout(int seconds) | void | Yes |
| setFetchSize(int rows) | void | Yes |
| cancel() | void | Yes |
| executeLargeUpdate(String sql) | long | No |
| getLargeUpdateCount() | long | No |
| executeLargeBatch() | long | No |
| executeLargeUpdate(String sql, int autoGeneratedKeys) | long | No |
| executeLargeUpdate(String sql, int[] columnIndexes) | long | No |
| executeLargeUpdate(String sql, String[] columnNames) | long | No |
| enableStreamingResults() | void | Yes |
- 通过setFetchSize可以减少结果集在客户端的内存占用情况。它的原理是通过将结果集打包成游标,然后分段处理,所以会加大数据库与客户端的通信量,会有性能损耗。
- 由于数据库游标是事务内有效,所以,在设置setFetchSize的同时,需要将连接设置为非自动提交模式,setAutoCommit(false)。同时在业务数据需要持久化到数据库中时,在连接上执行提交操作。
- LargeUpdate相关方法必须在JDBC4.2及以上版本使用。
- enableStreamingResults()是开启流式读的一个自定义接口,该接口间接调用setFetchSize(Integer.MIN_VALUE)。若要开启流式读功能,需要将url中的enableStreamingQuery设置为true,同时调用setFetchSize(Integer.MIN_VALUE)或者enableStreamingResults()。除开启流式读功能外,setFetchSize()的入参只能为正数或者0。
更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…