using Dapper; using Long.Core.Query; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Long.Dapper { /// /// 基础数据库连接类接口 /// public interface IDatabase { /// /// 设置 appsettings.json 中的数据库连接字符串 /// /// 数据库配置关键字 void SetConnectionString(string dbKey); /// /// 获取数据库连接 /// /// /// IDbConnection GetDbConnection(); #region 查询 /// /// 查询列表 /// /// 泛型 /// SQL 查询字符串 /// SQL 参数对象 /// 泛型列表 IEnumerable Query(string sqlString, object? param = null); /// /// 查询列表 /// /// 泛型 /// SQL 查询字符串 /// SQL 参数对象 /// 泛型列表 Task> QueryAsync(string sqlString, object? param = null); /// /// 查询第一条数据 /// /// 泛型 /// SQL 查询字符串 /// SQL 参数对象 /// 泛型对象 T QueryFirst(string sqlString, object? param = null); /// /// 查询第一条数据 /// /// 泛型 /// SQL 查询字符串 /// SQL 参数对象 /// 泛型对象 Task QueryFirstAsync(string sqlString, object? param = null); /// /// 获取数据 /// /// IEnumerable Get(); /// /// 获取数据 /// /// Task> GetAsync(); /// /// 获取数据 /// /// /// /// IEnumerable Get(string sql, object param); /// /// 获取数据 /// /// /// /// Task> GetAsync(string sql, object param); /// /// 获取数据 /// /// /// /// Task> GetAsync(string sql, object param); /// /// 通过id获取数据 /// /// 内码 /// IEnumerable Get(long id); /// /// 通过id获取数据 /// /// 内码 /// Task> GetAsync(long id); /// /// 通过一堆id获取数据 /// /// 内码列表 /// IEnumerable Get(IEnumerable ids); /// /// 通过一堆id获取数据 /// /// 内码列表 /// Task> GetAsync(IEnumerable ids); /// /// 获取一堆数据 /// /// 查询参数 /// IEnumerable Get(QueryParamenter queryParamenter); /// /// 获取一堆数据 /// /// 查询参数 /// Task> GetAsync(QueryParamenter queryParamenter); /// /// 获取数据 /// /// 查询参数 /// Task> GetAsync(QueryParamenter param); /// /// 通过id获取一条数据 /// /// TEntity GetFirst(); /// /// 通过id获取一条数据 /// /// Task GetFirstAsync(); /// /// 通过id获取一条数据 /// /// /// TEntity GetFirst(long id); /// /// 通过id获取一条数据 /// /// /// Task GetFirstAsync(long id); /// /// 获取一条数据 /// /// /// TEntity GetFirst(string sql); /// /// 获取一条数据 /// /// /// Task GetFirstAsync(string sql); /// /// 获取一条数据 /// /// /// /// TEntity GetFirst(string sql, object param); /// /// 获取一条数据 /// /// /// /// Task GetFirstAsync(string sql, object param); /// /// 获取一条数据 /// /// /// /// Task GetFirstAsync(string sql, object param); /// /// 获取一条数据 /// /// /// TEntity GetFirst(QueryParamenter queryParamenter, object? param = null); /// /// 获取一条数据 /// /// /// Task GetFirstAsync(QueryParamenter queryParamenter, object? param = null); /// /// 获取一条数据 /// /// /// TEntity GetFirst(QueryParamenter queryParamenter); /// /// 获取一条数据 /// /// /// Task GetFirstAsync(QueryParamenter queryParamenter); /// /// 获取一条数据 /// /// /// T GetFirst(QueryParamenter queryParamenter); /// /// 获取一条数据 /// /// /// Task GetFirstAsync(QueryParamenter queryParamenter); #endregion #region 统计 /// /// 统计表记录数 /// /// 记录数 int Count(); /// /// 统计表记录数 /// /// 记录数 Task CountAsync(); /// /// 统计表记录数 /// /// 记录数 Task CountAsync(QueryParamenter queryParamenter); /// /// 统计表记录数 /// /// 内码 /// 记录数 int Count(long id); /// /// 统计表记录数 /// /// 内码 /// 记录数 Task CountAsync(long id); /// /// 统计表记录数 /// /// 表名 /// 记录数 int Count(string tableName); /// /// 统计表记录数 /// /// 表名 /// 记录数 Task CountAsync(string tableName); /// /// 通过条件统计表记录数 /// /// 筛选条件,不包含 WHERE 关键字 /// 记录数 int CountByWhere(string where); /// /// 通过条件统计表记录数 /// /// 筛选条件,不包含 WHERE 关键字 /// 记录数 Task CountByWhereAsync(string where); /// /// 通过条件统计表记录数 /// /// 内码 /// 筛选条件,不包含 WHERE 关键字 /// 记录数 int CountByWhere(long id, string where); /// /// 通过条件统计表记录数 /// /// 内码 /// 筛选条件,不包含 WHERE 关键字 /// 记录数 Task CountByWhereAsync(long id, string where); /// /// 通过条件统计表记录数 /// /// 表名 /// 筛选条件,不包含 WHERE 关键字 /// 记录数 int CountByWhere(string tableName, string where); /// /// 通过条件统计表记录数 /// /// 表名 /// 筛选条件,不包含 WHERE 关键字 /// 记录数 Task CountByWhereAsync(string tableName, string where); #endregion #region 插入 /// /// 插入数据 /// /// SQL /// 插入对象 /// 插入记录数 int Insert(string sql, object insert); /// /// 插入数据 /// /// SQL /// 插入对象 /// Task InsertAsync(string sql, object insert); /// /// 插入数据,自动填入Id /// /// 插入对象 /// 记录内码 long Insert(TEntity insert); /// /// 插入数据,自动填入Id /// /// 插入对象 /// 记录内码 Task InsertAsync(TEntity insert); /// /// 插入一堆数据,自动填入Id /// /// 插入对象列表 /// 记录内码列表 IEnumerable Insert(IEnumerable inserts); /// /// 插入一堆数据,自动填入Id /// /// 插入对象列表 /// 记录内码列表 Task> InsertAsync(IEnumerable inserts); #endregion #region 更新 /// /// 更新数据 /// /// SQL /// 更新对象 /// int Update(string sql, object update); /// /// 更新数据 /// /// SQL /// 更新对象 /// Task UpdateAsync(string sql, object update); /// /// 更新数据 /// /// 更新对象 /// int Update(TEntity update); /// /// 更新数据 /// /// 更新对象 /// Task UpdateAsync(TEntity update); /// /// 更新数据 /// /// 更新对象 /// 更新字段 /// int Update(TEntity update, string[] fields); /// /// 更新数据 /// /// 更新对象 /// 更新字段 /// Task UpdateAsync(TEntity update, string[] fields); /// /// 更新一堆数据 /// /// 更新对象列表 /// int Update(IEnumerable updates); /// /// 更新一堆数据 /// /// 更新对象列表 /// Task UpdateAsync(IEnumerable updates); /// /// 更新一堆数据 /// /// 更新对象列表 /// 更新字段 /// int Update(IEnumerable updates, string[] fields); /// /// 更新一堆数据 /// /// 更新对象列表 /// 更新字段 /// Task UpdateAsync(IEnumerable updates, string[] fields); #endregion #region 删除 /// /// 删除 /// /// 内码 /// int Delete(long id); /// /// 删除 /// /// 内码 /// Task DeleteAsync(long id); /// /// 删除 /// /// 一堆内码 /// int Delete(IEnumerable ids); /// /// 删除 /// /// 一堆内码 /// Task DeleteAsync(IEnumerable ids); #endregion #region 执行 /// /// 执行 SQL /// /// sql字符串 /// int Execute(string sqlString); /// /// 执行 SQL /// /// sql字符串 /// Task ExecuteAsync(string sqlString); /// /// 执行 SQL /// /// sql字符串 /// 传入参数 /// int Execute(string sqlString, object? param = null); /// /// 执行 SQL /// /// sql字符串 /// 传入参数 /// Task ExecuteAsync(string sqlString, object? param = null); /// /// 执行 SQL /// /// sql字符串 /// 传入参数 /// 数据库事务 /// int Execute(string sqlString, object? param = null, IDbTransaction? dbTransaction = null); /// /// 执行 SQL /// /// sql字符串 /// 传入参数 /// 数据库事务 /// Task ExecuteAsync(string sqlString, object? param = null, IDbTransaction? dbTransaction = null); /// /// 执行存储过程 /// /// sql字符串 /// 传入参数 /// int ExecuteStoredProcedure(string storedProcedure, object? param = null); /// /// 执行存储过程 /// /// sql字符串 /// 传入参数 /// Task ExecuteStoredProcedureAsync(string storedProcedure, object? param = null); #endregion #region 获取SQL /// /// 获取SQL /// /// /// string GetSql(QueryParamenter queryParamenter); /// /// 查询全部SQL /// /// string GetAllSql(); /// /// 通过id查询SQL /// /// string GetByIdSql(); /// /// 通过一堆id查询SQL /// /// string GetByIdsSql(); /// /// 插入SQL /// /// string InsertSql(); /// /// 更新SQL /// /// string UpdateSql(); /// /// 更新SQL /// /// 要更新的字段 /// string UpdateSql(string[] fields); /// /// 更新一堆SQL /// /// string UpdatesSql(); /// /// 更新一堆SQL /// /// 要更新的字段 /// string UpdatesSql(string[] fields); /// /// 获取删除SQL /// /// string DeleteAllSql(); /// /// 通过id获取删除SQL /// /// string DeleteSql(); /// /// 通过一堆id获取删除SQL /// /// string DeletesSql(); #endregion #region 获取值和编码 /// /// 设置id /// /// /// long SetId(object param); /// /// 设置id /// /// /// Task SetIdAsync(object param); /// /// 获取下一个id。请在数据库中建立表(NextValue),字段有(TableName: varchar, FieldName: varchar, Value: long) /// /// 默认值:1 /// long GetNextValue(long defaultValue = 1); /// /// 获取下一个id。请在数据库中建立表(NextValue),字段有(TableName: varchar, FieldName: varchar, Value: long) /// /// 默认值:1 /// Task GetNextValueAsync(long defaultValue = 1); /// /// 获取下一个id。请在数据库中建立表(NextValue),字段有(TableName: varchar, FieldName: varchar, Value: long) /// /// 默认值:1 /// long GetNextValue(string tableName, string fieldName, long defaultValue = 1); /// /// 获取下一个id。请在数据库中建立表(NextValue),字段有(TableName: varchar, FieldName: varchar, Value: long) /// /// 默认值:1 /// Task GetNextValueAsync(string tableName, string fieldName, long defaultValue = 1); #endregion } }