QueryExecutor接口
抽象执行查询的特定于协议的细节。
abort
功能描述
在网络级别中止,而不将Terminate消息发送到后端。
语法格式
void abort()
参数说明
无。
返回值
无。
borrowCallableQuery
功能描述
借用可调用查询。
语法格式
CachedQuery borrowCallableQuery(String sql)
throws SQLException
参数说明
sql:查询语句。
返回值
缓存查询。
borrowQuery
功能描述
借用查询。
语法格式
CachedQuery borrowQuery(String sql)
throws SQLException
参数说明
sql:查询语句。
返回值
缓存查询。
borrowQueryByKey
功能描述
通过键借用查询。
语法格式
CachedQuery borrowQueryByKey(Object key)
throws SQLException
参数说明
key:键。
返回值
缓存查询。
borrowReturningQuery
功能描述
借用返回查询。
语法格式
CachedQuery borrowReturningQuery(String sql,
String[] columnNames)
throws SQLException
参数说明
sql:查询语句。
columnNames:列名。
返回值
缓存查询。
close
功能描述
干净地关闭此连接。
语法格式
void close()
参数说明
无。
返回值
无。
createFastpathParameters(Deprecated)
功能描述
创建一个新的ParameterList实现,该实现适合通过fastpathCall(int, org.postgresql.core.ParameterList, boolean)调用fastpath函数。
语法格式
ParameterList createFastpathParameters(int count)
参数说明
count:fastpath调用将接受的参数数。
返回值
一个适合传递给fastpathCall(int, org.postgresql.core.ParameterList, boolean)的参数列表。
createQuery
功能描述
创建查询。
语法格式
CachedQuery createQuery(String sql,
boolean escapeProcessing,
boolean isParameterized,
String... columnNames)
throws SQLException
参数说明
sql:sql语句。
escapeProcessing:转义处理。
isParameterized:是否参数化。
columnNames: 列名。
返回值
缓存查询。
createQueryByKey
功能描述
通过键创建查询。
语法格式
CachedQuery createQueryByKey(Object key)
throws SQLException
参数说明
参数名 | 参数说明 |
---|---|
key | 键 |
key:键
返回值
缓存查询。
createQueryKey
功能描述
创建查询键。
语法格式
Object createQueryKey(String sql,
boolean escapeProcessing,
boolean isParameterized,
String... columnNames)
参数说明
sql:sql语句。
escapeProcessing:转义处理。
isParameterized:是否参数化。
columnNames:列名。
返回值
查询键。
createSimpleQuery
功能描述
创建一个适合由这个QueryExecutor执行的非参数化的Query对象。所提供的查询字符串没有解析参数占位符(‘?’字符),以及查询。返回对象的createParameterList()将始终返回一个空的ParameterList。
语法格式
Query createSimpleQuery(String sql)
throws SQLException
参数说明
sql:要创建的查询的SQL语句。
返回值
一个新的查询对象。
execute(Query[] queries, ParameterList[] parameterLists, BatchResultHandler handler, int maxRows, int fetchSize, int flags)
功能描述
执行多个查询,将结果传递给一个提供的ResultHandler。
语法格式
void execute(Query[] queries,
ParameterList[] parameterLists,
BatchResultHandler handler,
int maxRows,
int fetchSize,
int flags)
throws SQLException
参数说明
queries:查询执行;每个都必须是在这个QueryExecutor对象上调用wrap(List)返回的查询。
parameterLists:查询的参数列表。参数列表与查询数组中传递的查询一一对应。如果相应的查询接受参数,则每个参数必须是非空的,并且必须是由相应查询创建的query. createparameterlist()返回的参数对象。
handler:负责处理此查询生成的结果的BatchResultHandler。
maxRows:要检索的最大行数。
fetchSize:如果设置了QUERY FORMIARD CURSOR,则表示挂起之前要检索的首选行数。
flags:QUERY_*标志的组合,指示如何处理查询。
返回值
无。
execute(Query query, ParameterList parameters, ResultHandler handler, int maxRows, int fetchSize, int flags)
功能描述
执行一个查询,将结果传递给一个提供的ResultHandler。
语法格式
void execute(Query query,
ParameterList parameters,
ResultHandler handler,
int maxRows,
int fetchSize,
int flags)
throws SQLException
参数说明
query:查询执行;每个都必须是在这个QueryExecutor对象上调用wrap(List)返回的查询。
parameters:查询的参数。如果查询接受参数,则必须为非空。必须是由Query.createParameterList()返回。
handler:负责处理此查询生成的结果的ResultHandler。
maxRows:要检索的最大行数。
fetchSize:如果设置了QUERY FORMIARD CURSOR,则表示挂起之前要检索的首选行数。
flags:QUERY_*标志的组合,指示如何处理查询。
返回值
无。
executeBatch
功能描述
执行多个查询,将结果传递给所提供的ResultHandLer。
语法格式
void executeBatch(Query[] queries,
ParameterList[] parameterLists,
BatchResultHandler handler,
int maxRows,
int fetchSize,
int flags)
throws SQLException
参数说明
queries:查询执行;每个都必须是在这个QueryExecutor对象上调用wrap(List)返回的查询。
parameterLists:查询的参数列表。参数列表与查询数组中传递的查询一一对应。如果相应的查询接受参数,则每个参数必须是非空的,并且必须是由相应查询创建的query. createparameterlist()返回的参数对象。
handler:负责处理此查询生成的结果的BatchResultHandler。
maxRows:要检索的最大行数。
fetchSize:如果设置了QUERY FORMIARD CURSOR,则表示挂起之前要检索的首选行数。
flags:QUERY_*标志的组合,指示如何处理查询。
返回值
无。
fastpathCall(Deprecated)
功能描述
通过fastpath接口调用后端函数。
语法格式
byte[] fastpathCall(int fnid,
ParameterList params,
boolean suppressBegin)
throws SQLException
参数说明
fnid:要调用的后端函数的oid。
params:从createFastpathParameters(int)返回的参数列表,包含要传递给后端函数的参数。
suppressBegin:如果begin应该被抑制。
返回值
fastpath调用的二进制格式的结果,如果返回一个无效的结果,则为null。
fetch
功能描述
从游标中获取其他行。
语法格式
void fetch(ResultCursor cursor,
ResultHandler handler,
int fetchSize)
throws SQLException
参数说明
cursor:要从中取用的光标。
handler:将结果提供给的处理程序。
fetchSize:挂起之前要检索的首选行数。
返回值
无。
getApplicationName
功能描述
获取application_name连接属性。
语法格式
String getApplicationName()
参数说明
无。
返回值
application_name连接属性。
getApplicationType
功能描述
获取application连接类型。
语法格式
String getApplicationType()
参数说明
无。
返回值
application连接类型。
getAutoSave
功能描述
获取自动保存。
语法格式
AutoSave getAutoSave()
参数说明
无。
返回值
自动保存。
getBackendPID
功能描述
获取处理此连接的后端服务器进程的进程ID (PID)。
语法格式
int getBackendPID()
参数说明
无。
返回值
处理此连接的后端服务器进程的PID。
getCompatibilityMode
功能描述
获取兼容模式。
方法原型
String getCompatibilityMode()
参数说明
无
返回值
兼容模式
生命周期
自V2.3版本启用。
getDatabase
功能描述
获取此连接所连接的数据库。
语法格式
String getDatabase()
参数说明
无。
返回值
此连接所连接的数据库。
setCompatibilityMode
功能描述
设置兼容模式。
方法原型
void setCompatibilityMode(String compatibilityMode)
参数说明
compatibilityMode:兼容模式。
返回值
无
生命周期
自V2.3版本启用。
getEnableOutparamOveride()
功能描述
获取reload状态。
方法原型
boolean getEnableOutparamOveride()
参数说明
无
返回值
reload状态
生命周期
自V2.3版本启用。
getEncoding
功能描述
获取此连接使用的当前编码。
语法格式
Encoding getEncoding()
参数说明
无。
返回值
此连接使用的当前编码。
getGaussdbVersion
功能描述
获取Vastbase的版本信息。
语法格式
String getGaussdbVersion()
参数说明
无。
返回值
Vastbase的版本信息。
getHostSpec
功能描述
获取该连接所连接的主机和端口。
语法格式
HostSpec getHostSpec()
参数说明
无。
返回值
该连接所连接的主机和端口。
getIntegerDateTimes
功能描述
如果服务器使用整数而不是double来表示二进制日期和时间编码,则返回true。
语法格式
boolean getIntegerDateTimes()
参数说明
无。
返回值
服务器integer_datetime设置。
getNetworkTimeout
功能描述
获取网络超时时间。
语法格式
int getNetworkTimeout() throws IOException
参数说明
无。
返回值
网络超时时间。
getNotifications
功能描述
检索和清除此连接上挂起的异步通知集。
语法格式
PGNotification[] getNotifications()
throws SQLException
参数说明
无。
返回值
通知数组。如果没有通知,则返回空数组。
getPreferQueryMode
功能描述
获取首选查询模式。
语法格式
PreferQueryMode getPreferQueryMode()
参数说明
无。
返回值
首选查询模式。
getProtocolVersion
功能描述
获取协议的版本。
语法格式
int getProtocolVersion()
参数说明
无。
返回值
协议的版本。
getReplicationProtocol
功能描述
获取该连接对应的ReplicationProtocol实例。
语法格式
ReplicationProtocol getReplicationProtocol()
参数说明
无。
返回值
该连接对应的ReplicationProtocol实例。
getServerVersion
功能描述
从参数server_version返回服务器版本。
语法格式
String getServerVersion()
参数说明
无。
返回值
来自参数server_version的服务器版本字符串。
getServerVersionNum
功能描述
获得机器可读的服务器版本。
语法格式
int getServerVersionNum()
参数说明
无。
返回值
服务器版本的数字,XXYYZZ形式,如090401。
getSocketAddress
功能描述
获取套接字地址。
语法格式
String getSocketAddress()
参数说明
无。
返回值
套接字地址。
getStandardConformingStrings
功能描述
返回服务器是根据SQL标准处理字符串文字,还是使用传统的Vastbase转义规则。
语法格式
boolean getStandardConformingStrings()
参数说明
无。
返回值
如果服务器根据SQL标准处理字符串字面量,则为true。
getTimeZone
功能描述
返回java格式的后端时区。
语法格式
TimeZone getTimeZone()
参数说明
无。
返回值
java格式的后端时区。
getTransactionState
功能描述
获取此连接的当前事务状态。
语法格式
TransactionState getTransactionState()
参数说明
无。
返回值
一个ProtocolConnection.TRANSACTION_*常量。
getUser
功能描述
获取连接认证用户。
语法格式
String getUser()
参数说明
无。
返回值
获取此连接认证的用户。
getWarnings
功能描述
检索并清除此连接上累积的警告链。
语法格式
SQLWarning getWarnings()
参数说明
无。
返回值
链中的第一个SQLWarning,后续的警告可以通过SQLWarning.getNextWarning()找到。
isClosed
功能描述
检查此连接是否关闭。
语法格式
boolean isClosed()
参数说明
无。
返回值
若此连接关闭,则返回true。
isColumnSanitiserDisabled
功能描述
检查列清除是否禁用。
语法格式
boolean isColumnSanitiserDisabled()
参数说明
无。
返回值
若禁用列清除,则返回true。
isReWriteBatchedInsertsEnabled
功能描述
是否启用了rewriteBatchedInsert。
语法格式
boolean isReWriteBatchedInsertsEnabled()
参数说明
无。
返回值
若启用了rewriteBatchedInsert,则返回true。
processNotifies()
功能描述
在尝试检索通知之前,我们需要从网络缓冲区提取最近收到的通知。ProtocolConnection中的通知检索无法做到这一点,因为它容易死锁,所以必须由更高级别的调用方负责,这需要公开该方法。
语法格式
void processNotifies()
throws SQLException
参数说明
无。
返回值
无。
processNotifies(int timeoutMillis)
功能描述
在尝试检索通知之前,我们需要将最近收到的通知从网络缓冲区中提取出来。ProtocolConnection中的通知检索不能这样做,因为它容易死锁,所以更高级别的调用者必须负责,这需要公开该方法。该变体支持以毫秒为单位的给定时间的阻塞。
语法格式
void processNotifies(int timeoutMillis)
throws SQLException
参数说明
timeoutMillis:要阻塞的毫秒数。
返回值
无。
releaseQuery
功能描述
释放查询。
语法格式
void releaseQuery(CachedQuery cachedQuery)
参数说明
cachedQuery:待释放的缓存查询。
返回值
无。
sendQueryCancel
功能描述
取消发送此连接的查询。
语法格式
void sendQueryCancel()
throws SQLException
参数说明
无。
返回值
无。
setAutoSave
功能描述
设置自动保存。
语法格式
void setAutoSave(AutoSave autoSave)
参数说明
autoSave:自动保存。
返回值
无。
setAvailability
功能描述
设置可用。
方法原型
void setAvailability(boolean availability)
参数说明
availability:可用。
返回值
无。
生命周期
自V2.1版本启用。
setBinaryReceiveOids
功能描述
设置应该使用二进制编码接收的oid。
语法格式
void setBinaryReceiveOids(Set<Integer> useBinaryForOids)
参数说明
useBinaryForOids:使用二进制编码请求的oid。
返回值
无。
setBinarySendOids
功能描述
设置应该使用二进制编码发送的oid。
语法格式
void setBinarySendOids(Set<Integer> useBinaryForOids)
参数说明
useBinaryForOids:使用二进制编码请求的oid。
返回值
无。
setCompatibilityMode
功能描述
设置兼容模式。
方法原型
void setCompatibilityMode(String compatibilityMode)
参数说明
compatibilityMode:兼容模式。
返回值
无
生命周期
自V2.3版本启用。
setEnableOutparamOveride
功能描述
设置reload状态。
方法原型
void setEnableOutparamOveride(boolean enableOutputparamOveride)
参数说明
enableOutputparamOveride:True或者false。
返回值
无
生命周期
自V2.3版本启用。
setFlushCacheOnDeallocate
功能描述
默认情况下,连接重置语句缓存,以防出现deallocate al/discard所有消息。
语法格式
void setFlushCacheOnDeallocate(boolean flushCacheOnDeallocate)
参数说明
参数名 | 参数说明 |
---|---|
flushCacheOnDeallocate | 当观察到”deallocate/discard”消息时,如果语句缓存应该重置,则为True |
返回值
无。
setGaussdbVersion
功能描述
设置Vastbase版本。
语法格式
void setGaussdbVersion(String gaussdbVersion)
参数说明
gaussdbVersion:Vastbase版本。
返回值
无。
setNetworkTimeout
功能描述
设置网络超时。
语法格式
void setNetworkTimeout(int milliseconds)
throws IOException
参数说明
参数名 | 参数说明 |
---|---|
milliseconds | 毫秒 |
返回值
无。
setProtocolVersion
功能描述
设置协议版本。
语法格式
void setProtocolVersion(int protocolVersion)
参数说明
protocolVersion:协议版本。
返回值
无。
startBulkload
功能描述
向后端发起一个请求,为BulkloadOperation启动、初始化,并锁定对应连接。
方法原型
BulkloadOperation startBulkload(ResultHandler handler, String sql,
boolean suppressBegin, int flags)
throws SQLException
参数说明
- handler:处理结果的回调。
- sql:输入的sql语句。
- suppressBegin:如果开始,应该被抑制。
- flags:1位表示是否使用BulkloadOperation。
返回值
对应的BulkloadOperation对象
生命周期
startCopy
功能描述
发出一个COPY FROM STDIN / COPY TO STDOUT语句并返回相关操作的处理程序。在复制操作完成之前,不能执行其他数据库操作。
语法格式
CopyOperation startCopy(String sql,
boolean suppressBegin)
throws SQLException
参数说明
- sql:输入的sql语句。
- suppressBegin:如果开始,应该被抑制。
返回值
关联操作的处理程序。
willHealOnRetry
功能描述
是否在重试时恢复。
语法格式
boolean willHealOnRetry(SQLException e)
参数说明
e:异常。
返回值
若在重试时恢复,则返回true。
wrap
功能描述
将给定的本机查询包装为可执行的格式。
语法格式
Query wrap(List<NativeQuery> queries)
参数说明
queries:本地查询列表。
返回值
准备由此查询执行程序执行的查询对象。