GaussDB-java.sql.Statement

54 阅读2分钟

GaussDB-java.sql.Statement

java.sql.Statement是SQL语句接口。

方法名返回值类型支持JDBC4
addBatch(String sql)voidYes
clearBatch()voidYes
clearWarnings()voidYes
close()voidYes
closeOnCompletion()voidYes
execute(String sql)BooleanYes
execute(String sql, int autoGeneratedKeys)BooleanYes
execute(String sql, int[] columnIndexes)BooleanYes
execute(String sql, String[] columnNames)BooleanYes
executeBatch()BooleanYes
executeQuery(String sql)ResultSetYes
executeUpdate(String sql)intYes
executeUpdate(String sql, int autoGeneratedKeys)intYes
executeUpdate(String sql, int[] columnIndexes)intYes
executeUpdate(String sql, String[] columnNames)intYes
getConnection()ConnectionYes
getFetchDirection()intYes
getFetchSize()intYes
getGeneratedKeys()ResultSetYes
getMaxFieldSize()intYes
getMaxRows()intYes
getMoreResults()BooleanYes
getMoreResults(int current)BooleanYes
getResultSet()ResultSetYes
getResultSetConcurrency()intYes
getResultSetHoldability()intYes
getResultSetType()intYes
getQueryTimeout()intYes
getUpdateCount()intYes
getWarnings()SQLWarningYes
isClosed()BooleanYes
isCloseOnCompletion()BooleanYes
isPoolable()BooleanYes
setCursorName(String name)voidYes
setEscapeProcessing(boolean enable)voidYes
setFetchDirection(int direction)voidYes
setMaxFieldSize(int max)voidYes
setMaxRows(int max)voidYes
setPoolable(boolean poolable)voidYes
setQueryTimeout(int seconds)voidYes
setFetchSize(int rows)voidYes
cancel()voidYes
executeLargeUpdate(String sql)longNo
getLargeUpdateCount()longNo
executeLargeBatch()longNo
executeLargeUpdate(String sql, int autoGeneratedKeys)longNo
executeLargeUpdate(String sql, int[] columnIndexes)longNo
executeLargeUpdate(String sql, String[] columnNames)longNo
enableStreamingResults()voidYes

  • 通过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…