using System; using System.Collections.Generic; using System.Data; using System.Threading.Tasks; using TeamAAS.Database.Models; namespace TeamAAS.Database.Interfaces { /// /// 数据库操作统一接口。 /// 所有数据库提供者(MySQL、SQLite、SQL Server 等)均需实现此接口。 /// public interface IDatabase : IDisposable { /// /// 数据库唯一标识 /// Guid Id { get; } /// /// 数据库名称(显示用) /// string Name { get; set; } /// /// 数据库类型标识(如 "mysql"、"sqlite") /// string ProviderType { get; } /// /// 是否已连接 /// bool IsConnected { get; } /// /// 当前连接字符串(敏感信息已脱敏) /// string ConnectionString { get; } /// /// 打开数据库连接 /// bool Open(); /// /// 异步打开数据库连接 /// Task OpenAsync(); /// /// 关闭数据库连接 /// void Close(); /// /// 异步关闭数据库连接 /// Task CloseAsync(); /// /// 测试连接是否可用 /// (bool Success, string Message) TestConnection(); /// /// 异步测试连接 /// Task<(bool Success, string Message)> TestConnectionAsync(); /// /// 执行非查询 SQL(INSERT/UPDATE/DELETE/CREATE 等) /// /// SQL 语句 /// 参数字典(可选) /// 受影响行数 int ExecuteNonQuery(string sql, IDictionary parameters = null); /// /// 异步执行非查询 SQL /// Task ExecuteNonQueryAsync(string sql, IDictionary parameters = null); /// /// 执行查询,返回 DataTable /// /// SQL 查询语句 /// 参数字典(可选) /// 查询结果表 DataTable ExecuteQuery(string sql, IDictionary parameters = null); /// /// 异步执行查询,返回 DataTable /// Task ExecuteQueryAsync(string sql, IDictionary parameters = null); /// /// 执行查询,返回首行首列的值 /// /// SQL 查询语句 /// 参数字典(可选) /// 首行首列值,无结果时返回 null object ExecuteScalar(string sql, IDictionary parameters = null); /// /// 异步执行查询,返回首行首列的值 /// Task ExecuteScalarAsync(string sql, IDictionary parameters = null); /// /// 执行事务内的多条 SQL /// /// SQL 语句列表 /// 是否全部执行成功 bool ExecuteTransaction(IEnumerable sqlCommands); /// /// 异步执行事务 /// Task ExecuteTransactionAsync(IEnumerable sqlCommands); /// /// 获取所有表名 /// List GetTableNames(); /// /// 异步获取所有表名 /// Task> GetTableNamesAsync(); /// /// 获取指定表的列信息 /// /// 表名 /// 列信息列表 List GetTableSchema(string tableName); /// /// 异步获取表结构 /// Task> GetTableSchemaAsync(string tableName); /// /// 初始化连接配置 /// /// 数据库配置 void Configure(DatabaseConfig config); } }