SqlAggregator
SqlAggregator提供远程数据库连接以执行 SQL 查询。
类定义
public class SqlAggregator implements SqlConnection, java.io.Closeable
{
/**
* Constructor of the SQL aggregating.
* @param engines a list of engines used to aggregate
*/
public SqlAggregator(SqlLocalConnection [] engines)
{
init(engines, 64*1024);
}
public SqlAggregator(SqlLocalConnection [] engines, long bufferSize)
{
init(engines, bufferSize);
}
private void init(SqlLocalConnection [] engines, long bufferSize)
{
long [] _engines = new long[engines.length];
for (int i = 0; i < engines.length; i++)
{
_engines[i] = engines[i].getEngine();
}
agg = open(_engines, bufferSize);
}
/**
* Execute SQL query.
* @param query SQL query with '?' used as parameter placeholder.
* @return cursor through selected tuples
*/
public SqlResultSet executeQuery(String query, Object... params)
{
if (result != null)
{
result.close();
}
return result = new SqlResultSet(this, executeQuery(agg, query, params));
}
/**
* Execute SQL update statement
* @param stmt SQL DML statement with '?' used as parameter placeholder.
* @return number of affected (updated, inserted, deleted) records
*/
public int executeStatement(String stmt, Object... params)
{
return executeStatement(agg, stmt, params);
}
public void detachResultSet(SqlResultSet res)
{
result = null;
}
private long agg;
/**
* Close this connection.
*/
public void disconnect()
{
close(agg);
}
/**
* Close this connection. The same as disconnect.
*/
public void close()
{
disconnect();
}
};