@Override public boolean clearTable(final String tableName, final boolean ifdrop) throws SQLException { final Connection connection = Connections.getConnection(); try { final StringBuilder clearTableSql = new StringBuilder(); clearTableSql(clearTableSql, tableName, ifdrop); return JdbcUtil.executeSql(clearTableSql.toString(), connection, false); } catch (final SQLException e) { throw e; } finally { connection.close(); } }
@Override public void remove(final Query query) throws RepositoryException { final StringBuilder deleteSQL = new StringBuilder("DELETE FROM ").append(getName()); final List<Object> paramList = new ArrayList<>(); final StringBuilder filterSql = new StringBuilder(); buildWhere(filterSql, paramList, query.getFilter()); if (StringUtils.isNotBlank(filterSql.toString())) { deleteSQL.append(" WHERE ").append(filterSql); } final Connection connection = getConnection(); try { JdbcUtil.executeSql(deleteSQL.toString(), paramList, connection, debug); } catch (final SQLException e) { LOGGER.log(Level.ERROR, "Remove failed", e); throw new RepositoryException(e); } }
@Override public boolean createTable(final RepositoryDefinition repositoryDefinition) throws SQLException { final Connection connection = Connections.getConnection(); try { final StringBuilder createTableSql = new StringBuilder(); createTableHead(createTableSql, repositoryDefinition); createTableBody(createTableSql, repositoryDefinition); createTableEnd(createTableSql, repositoryDefinition); return JdbcUtil.executeSql(createTableSql.toString(), connection, false); } catch (final SQLException e) { throw e; } finally { connection.close(); } }
@Override public void remove(final String id) throws RepositoryException { if (StringUtils.isBlank(id)) { return; } final JdbcTransaction currentTransaction = TX.get(); if (null == currentTransaction) { throw new RepositoryException("Invoking remove() outside a transaction"); } final StringBuilder sql = new StringBuilder(); final Connection connection = getConnection(); try { remove(id, sql); JdbcUtil.executeSql(sql.toString(), connection, debug); } catch (final Exception e) { LOGGER.log(Level.ERROR, "Remove failed", e); throw new RepositoryException(e); } }
@Override public String add(final JSONObject jsonObject) throws RepositoryException { final JdbcTransaction currentTransaction = TX.get(); if (null == currentTransaction) { throw new RepositoryException("Invoking add() outside a transaction"); } final Connection connection = getConnection(); final List<Object> paramList = new ArrayList<>(); final StringBuilder sql = new StringBuilder(); String ret; try { if (Latkes.RuntimeDatabase.ORACLE == Latkes.getRuntimeDatabase()) { toOracleClobEmpty(jsonObject); } ret = buildAddSql(jsonObject, paramList, sql); JdbcUtil.executeSql(sql.toString(), paramList, connection, debug); JdbcUtil.fromOracleClobEmpty(jsonObject); } catch (final Exception e) { LOGGER.log(Level.ERROR, "Add failed", e); throw new RepositoryException(e); } return ret; }
@Override public void update(final String id, final JSONObject jsonObject) throws RepositoryException { if (StringUtils.isBlank(id)) { return; } final JdbcTransaction currentTransaction = TX.get(); if (null == currentTransaction) { throw new RepositoryException("Invoking update() outside a transaction"); } final JSONObject oldJsonObject = get(id); final Connection connection = getConnection(); final List<Object> paramList = new ArrayList<>(); final StringBuilder sqlBuilder = new StringBuilder(); try { if (Latkes.RuntimeDatabase.ORACLE == Latkes.getRuntimeDatabase()) { toOracleClobEmpty(jsonObject); } update(id, oldJsonObject, jsonObject, paramList, sqlBuilder); JdbcUtil.fromOracleClobEmpty(jsonObject); final String sql = sqlBuilder.toString(); if (StringUtils.isBlank(sql)) { return; } JdbcUtil.executeSql(sql, paramList, connection, debug); } catch (final Exception e) { LOGGER.log(Level.ERROR, "Update failed", e); throw new RepositoryException(e); } }
@Override public boolean clearTable(final String tableName, final boolean ifdrop) throws SQLException { final Connection connection = Connections.getConnection(); try { final StringBuilder clearTableSql = new StringBuilder(); clearTableSql(clearTableSql, tableName, ifdrop); return JdbcUtil.executeSql(clearTableSql.toString(), connection, false); } catch (final SQLException e) { throw e; } finally { connection.close(); } }
@Override public void remove(final Query query) throws RepositoryException { final StringBuilder deleteSQL = new StringBuilder("DELETE FROM ").append(getName()); final List<Object> paramList = new ArrayList<>(); final StringBuilder filterSql = new StringBuilder(); buildWhere(filterSql, paramList, query.getFilter()); if (StringUtils.isNotBlank(filterSql.toString())) { deleteSQL.append(" WHERE ").append(filterSql); } final Connection connection = getConnection(); try { JdbcUtil.executeSql(deleteSQL.toString(), paramList, connection, debug); } catch (final SQLException e) { LOGGER.log(Level.ERROR, "Remove failed", e); throw new RepositoryException(e); } }
@Override public boolean createTable(final RepositoryDefinition repositoryDefinition) throws SQLException { final Connection connection = Connections.getConnection(); try { final StringBuilder createTableSql = new StringBuilder(); createTableHead(createTableSql, repositoryDefinition); createTableBody(createTableSql, repositoryDefinition); createTableEnd(createTableSql, repositoryDefinition); return JdbcUtil.executeSql(createTableSql.toString(), connection, false); } catch (final SQLException e) { throw e; } finally { connection.close(); } }
@Override public void remove(final String id) throws RepositoryException { if (StringUtils.isBlank(id)) { return; } final JdbcTransaction currentTransaction = TX.get(); if (null == currentTransaction) { throw new RepositoryException("Invoking remove() outside a transaction"); } final StringBuilder sql = new StringBuilder(); final Connection connection = getConnection(); try { remove(id, sql); JdbcUtil.executeSql(sql.toString(), connection, debug); } catch (final Exception e) { LOGGER.log(Level.ERROR, "Remove failed", e); throw new RepositoryException(e); } }
@Override public String add(final JSONObject jsonObject) throws RepositoryException { final JdbcTransaction currentTransaction = TX.get(); if (null == currentTransaction) { throw new RepositoryException("Invoking add() outside a transaction"); } final Connection connection = getConnection(); final List<Object> paramList = new ArrayList<>(); final StringBuilder sql = new StringBuilder(); String ret; try { if (Latkes.RuntimeDatabase.ORACLE == Latkes.getRuntimeDatabase()) { toOracleClobEmpty(jsonObject); } ret = buildAddSql(jsonObject, paramList, sql); JdbcUtil.executeSql(sql.toString(), paramList, connection, debug); JdbcUtil.fromOracleClobEmpty(jsonObject); } catch (final Exception e) { LOGGER.log(Level.ERROR, "Add failed", e); throw new RepositoryException(e); } return ret; }
@Override public void update(final String id, final JSONObject jsonObject) throws RepositoryException { if (StringUtils.isBlank(id)) { return; } final JdbcTransaction currentTransaction = TX.get(); if (null == currentTransaction) { throw new RepositoryException("Invoking update() outside a transaction"); } final JSONObject oldJsonObject = get(id); final Connection connection = getConnection(); final List<Object> paramList = new ArrayList<>(); final StringBuilder sqlBuilder = new StringBuilder(); try { if (Latkes.RuntimeDatabase.ORACLE == Latkes.getRuntimeDatabase()) { toOracleClobEmpty(jsonObject); } update(id, oldJsonObject, jsonObject, paramList, sqlBuilder); JdbcUtil.fromOracleClobEmpty(jsonObject); final String sql = sqlBuilder.toString(); if (StringUtils.isBlank(sql)) { return; } JdbcUtil.executeSql(sql, paramList, connection, debug); } catch (final Exception e) { LOGGER.log(Level.ERROR, "Update failed", e); throw new RepositoryException(e); } }