栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C# Dapper帮助类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C# Dapper帮助类

C#Dappera帮助类
 internal class DapperHelper
    {

        //使用单例模式
        private static DapperHelper _Singleton = null;
        static SqlSugar.DbType dbtype = SqlSugar.DbType.SqlServer;
         static string ConnectionString = string.Empty;
        private static object Singleton_Lock = new object();
        public static DapperHelper Init(SqlSugar.DbType dbtype = SqlSugar.DbType.SqlServer)
        {
            if (_Singleton == null) //双if +lock
            {
                lock (Singleton_Lock)
                {
                    if (_Singleton == null)
                    {
                        //创建对象
                        _Singleton = new DapperHelper(dbtype);
                    }
                }
            }
            return _Singleton;
        }
        public DapperHelper(SqlSugar.DbType dbtype)
        {
            if (dbtype == SqlSugar.DbType.SqlServer)
            {
                DapperHelper.ConnectionString = ConnTools.init().GetSqlServerConn();
            }
            else if (dbtype == SqlSugar.DbType.Oracle)
            {
                DapperHelper.ConnectionString = ConnTools.init().GetOracleConn();
            }
            DapperHelper.dbtype = dbtype;
        }

        /// 
        /// 添加.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入实体类型.
        /// int.
        public int Add(string sql, T t)
                where T : class
        {
            return Add(sql, t,ConnectionString);
        }

        /// 
        /// 添加.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入实体类型.
        /// 链接字符串.
        /// int.
        public int Add(string sql, T t, string ConnectionString)
                where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }
        /// 
        /// 批量添加.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入泛型类.
        /// int.
        public int Add(string sql, List t)
            where T : class
        {
            return Add(sql, t, ConnectionString);
        }
        /// 
        /// 批量添加.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入泛型类.
        /// 链接字符串.
        /// int.
        public int Add(string sql, List t, string ConnectionString)
            where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }

        /// 
        /// 删除.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入实体类型.
        /// 链接字符串.
        /// int.
        public int Delete(string sql, T t)
                  where T : class
        {
            return Delete(sql, t, ConnectionString)
;        }
        /// 
        /// 删除.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入实体类型.
        /// 链接字符串.
        /// int.
        public int Delete(string sql, T t, string ConnectionString)
                  where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }

        /// 
        /// 批量删除.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入泛型类.
        /// int.
        public int Delete(string sql, List t)
                  where T : class
        {
            return Delete(sql, t, ConnectionString);
        }
        /// 
        /// 批量删除.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入泛型类.
        /// 链接字符串.
        /// int.
        public int Delete(string sql, List t, string ConnectionString)
                  where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }

        /// 
        /// 修改.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入实体类型.
        /// 链接字符串.
        /// int.
        public int Update(string sql, T t, string ConnectionString)
                  where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }
        /// 
        /// 批量修改.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入泛型类.
        /// int.
        public int Update(string sql, List t)
                  where T : class
        {
            return Update(sql, t, ConnectionString);
        }
        /// 
        /// 批量修改.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入泛型类.
        /// 链接字符串.
        /// int.
        public int Update(string sql, List t, string ConnectionString)
                  where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Execute(sql, t);
            }
        }

        /// 
        /// 查询.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 泛型类.
        public List Query(string sql)
                 where T : class
        {
            return Query(sql, ConnectionString);
        }
        /// 
        /// 查询.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 链接字符串.
        /// 泛型类.
        public List Query(string sql, string ConnectionString)
                 where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Query(sql).ToList();
            }
        }
        /// 
        /// 查询指定数据.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入泛型类.
        /// 类.
        public T Query(string sql, T t)
                 where T : class
        {
            return Query(sql, t, ConnectionString);
        }
        /// 
        /// 查询指定数据.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 传入泛型类.
        /// 链接字符串.
        /// 类.
        public T Query(string sql, T t, string ConnectionString)
                 where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Query(sql, t).SingleOrDefault();
            }
        }
        /// 
        /// 查询多个数据
        /// 
        /// 
        /// 
        /// 
        /// 
        public List QueryList(string sql, T t)
             where T : class
        {
            return QueryList(sql, t, ConnectionString);
        }
        /// 
        /// 查询多条数据
        /// 
        /// 
        /// 查询语句
        /// 模型
        /// 数据库连接字符串
        /// 
        public List QueryList(string sql, T t, string ConnectionString)
               where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Query(sql, t).ToList();
            }
        }
        /// 
        /// 查询数据返回datatable
        /// 
        /// 
        /// 
        /// 
        /// 
        public DataTable QueryDataTable(string sql, T t)
               where T : class
        {
            return QueryDataTable(sql, t, ConnectionString);
        }

        public DataTable QueryDataTable(string sql, T t, string ConnectionString)
                 where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Query(sql, t).SingleOrDefault();
            }
        } /// 
          /// 查询的in操作.
          /// 
          /// 实体类型.
          /// 传入sql执行语句.
          /// 泛型类.
        public List Query(string sql, int[] ids)
                where T : class
        {
            return Query(sql, ids, ConnectionString)
  ;        }
        /// 
        /// 查询的in操作.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 链接字符串.
        /// 泛型类.
        public List Query(string sql, int[] ids, string ConnectionString)
                where T : class
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                return connection.Query(sql, new { ids }).ToList();
            }
        }
        /// 
        /// 多语句操作.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 链接字符串.
        public void QueryMultiple(string sql, T t)
        {
            return QueryMultiple(sql, t, ConnectionString);
        }
        /// 
        /// 多语句操作.
        /// 
        /// 实体类型.
        /// 传入sql执行语句.
        /// 链接字符串.
        public void QueryMultiple(string sql, T t, string ConnectionString)
        {
            using (IDbConnection connection = new SqlConnection(ConnectionString))
            {
                var multiReader = connection.QueryMultiple(sql);
                var userInfo = multiReader.Read();

                multiReader.Dispose();
            }
        }
    }
}
代码中用到的枚举
public enum DbType
    {
        MySql = 0,
        SqlServer = 1,
        Sqlite = 2,
        Oracle = 3,
        PostgreSQL = 4,
        Dm = 5,
        Kdbndp = 6,
        Oscar = 7,
        MySqlConnector = 8,
        Access = 9,
        Custom = 900
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/970112.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号