java.sql.Statement
java.sql.Statement是SQL语句接口。
|
方法名 |
返回值类型 |
支持JDBC 4 |
|---|---|---|
|
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 |
- 通过setFetchSize可以减少结果集在客户端的内存占用情况。它的原理是通过将结果集打包成游标,然后分段处理,所以会加大数据库与客户端的通信量,会有性能损耗。
- 由于数据库游标是事务内有效,所以,在设置setFetchSize的同时,需要将连接设置为非自动提交模式,setAutoCommit(false)。同时在业务数据需要持久化到数据库中时,在连接上执行提交操作。
- LargeUpdate相关方法必须在JDBC4.2及以上版本使用。