@Override
    public ExecuteContext doBefore(ExecuteContext context) {
        if (!(context.getObject() instanceof AbstractJdbc3gStatement)) {
            return context;
        }
        AbstractJdbc3gStatement statement = (AbstractJdbc3gStatement) context.getObject();

        // Store link information to ensure that QueryExecutorImplInterceptor can retrieve database information
        try {
            ThreadDatabaseUrlUtil.setDatabaseUrl(statement.getPGConnection().getMetaData().getURL());
        } catch (SQLException e) {
            LOGGER.log(Level.SEVERE, "can not obtain the database information.", e);
        }
        return context;
    }
@Test
    public void testDoBefore() throws Exception {
        ExecuteContext context = ExecuteContext.forMemberMethod(abstractJdbc3gStatement, methodMock,
                null, null, null);
        jdbc2StatementInterceptor.before(context);
        Assert.assertNotNull(ThreadDatabaseUrlUtil.getDatabaseUrl());
    }