From 65ece12cedaa73ddd6a99070449f48f76f309d92 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Wed, 15 Jan 2014 22:09:45 +0100 Subject: [PATCH] [New] added querySize() methods to ElementMap --- .../persistence/postgresql/PostgresqlDao.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/main/java/li/strolch/persistence/postgresql/PostgresqlDao.java b/src/main/java/li/strolch/persistence/postgresql/PostgresqlDao.java index 67bd4496c..f7f6c7f4a 100644 --- a/src/main/java/li/strolch/persistence/postgresql/PostgresqlDao.java +++ b/src/main/java/li/strolch/persistence/postgresql/PostgresqlDao.java @@ -51,6 +51,34 @@ public abstract class PostgresqlDao implements Strolch protected abstract T parseFromXml(String id, String type, SQLXML xml); + @Override + public long querySize() { + String sql = "select count(*) from " + getTableName(); + try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) { + try (ResultSet result = statement.executeQuery()) { + result.next(); + return result.getLong(1); + } + } catch (SQLException e) { + throw new StrolchPersistenceException("Failed to query size due to: " + e.getMessage(), e); + } + } + + @Override + public long querySize(String type) { + + String sql = "select count(*) from " + getTableName() + " where type = ?"; + try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) { + statement.setString(1, type); + try (ResultSet result = statement.executeQuery()) { + result.next(); + return result.getLong(1); + } + } catch (SQLException e) { + throw new StrolchPersistenceException("Failed to query size due to: " + e.getMessage(), e); + } + } + @Override public Set queryKeySet() {