presto-base-jdbc/src/main/java/io/prestosql/plugin/jdbc/JdbcModule.java/JdbcModule/configure
class JdbcModule:    @Override
    public void configure(Binder binder)
    {
        newOptionalBinder(binder, ConnectorAccessControl.class);
        newSetBinder(binder, Procedure.class);
        newSetBinder(binder, SessionPropertiesProvider.class);
        binder.bind(JdbcMetadataFactory.class).in(Scopes.SINGLETON);
        binder.bind(JdbcSplitManager.class).in(Scopes.SINGLETON);
        binder.bind(JdbcRecordSetProvider.class).in(Scopes.SINGLETON);
        binder.bind(JdbcPageSinkProvider.class).in(Scopes.SINGLETON);
        binder.bind(JdbcConnector.class).in(Scopes.SINGLETON);
        configBinder(binder).bindConfig(JdbcMetadataConfig.class);

        binder.bind(JdbcClient.class)
                .to(Key.get(JdbcClient.class, StatsCollecting.class));
        binder.bind(ConnectionFactory.class)
                .to(Key.get(ConnectionFactory.class, StatsCollecting.class));

        newExporter(binder).export(Key.get(JdbcClient.class, StatsCollecting.class))
                .as(generator -> generator.generatedNameOf(JdbcClient.class, catalogName));
        newExporter(binder).export(Key.get(ConnectionFactory.class, StatsCollecting.class))
                .as(generator -> generator.generatedNameOf(ConnectionFactory.class, catalogName));
    }