private <T extends Rush> List<T> load(Class<T> clazz, String sql, final RushQue que) { logger.logSql(sql); RushStatementRunner.ValuesCallback values = statementRunner.runGet(sql, que); List<T> objects = rushClassLoader.loadClasses( clazz, rushColumns, annotationCache, values, new RushClassLoader.LoadCallback() { @Override public RushStatementRunner.ValuesCallback runStatement(String string) { logger.logSql(string); return statementRunner.runGet(string, que); } @Override public void didLoadObject(Rush rush, RushMetaData rushMetaData) { registerObjectWithMetaData(rush, rushMetaData); } }); values.close(); queProvider.queComplete(que); if (objects == null) { throw new RushTableMissingEmptyConstructorException(clazz); } return objects; }
public long count(String sql) { final RushQue que = queProvider.blockForNextQue(); logger.logSql(sql); RushStatementRunner.ValuesCallback valuesCallback = statementRunner.runGet(sql, que); List<String> results = valuesCallback.next(); long count = Long.parseLong(results.get(0)); valuesCallback.close(); queProvider.queComplete(que); return count; }