java.sql.Statement
java.sql.Statement 是SQL 语句接口。
表8-8 对java.sql.Statement 的支持情况
方法名
返回值类型
支持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
GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
244
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
getResultSetConcurrenc y()
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
GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
245
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(Str ing sql)
long
No
getLargeUpdateCount()
long
No
executeLargeBatch()
long
No
executeLargeUpdate(Str
ing
sql,
int
autoGeneratedKeys)
long
No
executeLargeUpdate(Str ing sql, int[]
columnIndexes)
long
No
executeLargeUpdate(Str
ing
sql,
String[] columnNames)
long
No
通过setFetchSize 可以减少结果集在客户端的内存占用情况。它的原理是通过将结
果集打包
成游标,然后分段处理,
所以会加大数据库与客户端的通信量,会有性
能损耗。
由于数据库游标是事务内有效,所以,在设置setFetchSize 的同时,需要将连接设
置为非自动提交模式,
setAutoCommit(false)。
同时在业务数据需要持久化到数据库
中时,在连接上执行提交操作。
LargeUpdate 相关方法必须在JDBC4.2 及以上使用。