Esempio n. 1
0
        // public static readonly ShardingDbProviderFactory Instance = new ShardingDbProviderFactory();
        // private  IDataSource _dataSource;
        //
        // public static void Init(IDictionary<string, DbProviderFactory> dataSourceMap, ShardingRuleConfiguration shardingRuleConfig, IDictionary<string, object> props)
        // {
        //     Instance._dataSource= ShardingDataSourceFactory.CreateDataSource(dataSourceMap, shardingRuleConfig, new Dictionary<string, object>());
        // }
        public ShardingDbProviderFactory(IDictionary <string, IDataSource> dataSourceMap, ShardingRuleConfiguration shardingRuleConfig, IDictionary <string, object> props)
        {
            _dataSourceMap     = dataSourceMap;
            _defaultDataSource = dataSourceMap.Values.FirstOrDefault(o => o.IsDefault()) ??
                                 throw new InvalidOperationException("not found default data source for init sharding");
            var databaseType = CreateDatabaseType();

            _shardingRuntimeContext = new ShardingRuntimeContext(dataSourceMap, new ShardingRule(shardingRuleConfig, dataSourceMap.Keys), props, databaseType);
        }
Esempio n. 2
0
 private void refreshMetaDataIfNeeded(ShardingRuntimeContext runtimeContext, ISqlCommandContext <ISqlCommand> sqlStatementContext)
 {
     if (null == sqlStatementContext)
     {
         return;
     }
     // if (sqlStatementContext instanceof CreateTableStatementContext) {
     //     refreshTableMetaData(runtimeContext, ((CreateTableStatementContext) sqlStatementContext).getSqlStatement());
     // } else if (sqlStatementContext instanceof AlterTableStatementContext) {
     //     refreshTableMetaData(runtimeContext, ((AlterTableStatementContext) sqlStatementContext).getSqlStatement());
     // } else if (sqlStatementContext instanceof DropTableStatementContext) {
     //     refreshTableMetaData(runtimeContext, ((DropTableStatementContext) sqlStatementContext).getSqlStatement());
     // } else if (sqlStatementContext instanceof CreateIndexStatementContext) {
     //     refreshTableMetaData(runtimeContext, ((CreateIndexStatementContext) sqlStatementContext).getSqlStatement());
     // } else if (sqlStatementContext instanceof DropIndexStatementContext) {
     //     refreshTableMetaData(runtimeContext, ((DropIndexStatementContext) sqlStatementContext).getSqlStatement());
     // }
 }