class JdbcAccessor extends JdbcBasePlugin implements Accessor {

    @Override
    public boolean openForRead() throws SQLException, SQLTimeoutException, ParseException {
        if (statementRead != null && !statementRead.isClosed()) {
            return true;
        }

        Connection connection = super.getConnection();
        SQLQueryBuilder sqlQueryBuilder = new SQLQueryBuilder(context, connection.getMetaData(), getQueryText());

        // Build SELECT query
        if (quoteColumns == null) {
            sqlQueryBuilder.autoSetQuoteString();
        }
        else if (quoteColumns) {
            sqlQueryBuilder.forceSetQuoteString();
        }
        queryRead = sqlQueryBuilder.buildSelectQuery();
        LOG.trace("Select query: {}", queryRead);

        // Execute queries
        statementRead = connection.createStatement();
        statementRead.setFetchSize(fetchSize);

        if (queryTimeout != null) {
            LOG.debug("Setting query timeout to {} seconds", queryTimeout);
            statementRead.setQueryTimeout(queryTimeout);
        }
        resultSetRead = statementRead.executeQuery(queryRead);

        return true;
    }

    public  JdbcAccessor();
      JdbcAccessor(ConnectionManager connectionManager);

}