// 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); }
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()); // } }