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

SqlSugar框架 DB类 ConnectionString:连接字符串从底层配置文件获取

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

SqlSugar框架 DB类 ConnectionString:连接字符串从底层配置文件获取

 

需导入Sqlsugar命名空间进行使用,与数据库进行交互保证类名和字段的一致性

public class DBContext where T : class, new()
    {
        ///


        /// 数据库实例
        ///

        private SqlSugarClient db;
        private static DBContext instance = null;
        private static string ConnectionKey;

        public static DBContext GetInstance()
        {
            if (instance == null)
                instance = new DBContext();
            return instance;
        }

        //数据库连接字符串

        public static DBContext OpenDB()
        {
            DBContext dBContext = new DBContext();
            dBContext.db = new SqlSugarClient(
                 new ConnectionConfig()
                 {
                     ConnectionString = ConfigHelper.GetValueByKey("ConnectionString"),
                     DbType = SqlSugar.DbType.MySql, //设置数据库类型
                     IsAutoCloseConnection = true, //自动释放数据务,如果存在事务,在事务结束后释放
                     InitKeyType = InitKeyType.Attribute, //从实体特性中读取主键自增列信息
                 });
            return dBContext;
        }

        public DBContext()
        {
            db = new SqlSugarClient(
                 new ConnectionConfig()
                 {
                     ConnectionString = ConfigHelper.GetValueByKey("ConnectionString"),
                     DbType = SqlSugar.DbType.MySql, //设置数据库类型
                     IsAutoCloseConnection = true, //自动释放数据务,如果存在事务,在事务结束后释放
                     InitKeyType = InitKeyType.Attribute, //从实体特性中读取主键自增列信息
                 });
        }

        public void Dispose()
        {
            if (db != null)
            {
                db.Dispose();
            }
        }

        public SimpleClient CurrentDb => new SimpleClient(db);


        ///


        /// 根据sql脚本查询
        ///

        ///
        public virtual DataTable GetBySql(string sqlStr)
        {
            return db.Ado.GetDataTable(sqlStr);
        }

        ///


        /// 获取所有
        ///

        ///
        public virtual List GetList()
        {
            return CurrentDb.GetList();
        }

        ///


        /// 根据表达式查询
        ///

        ///
        public virtual List GetList(Expression> whereExpression)
        {
            return CurrentDb.GetList(whereExpression);
        }


        ///


        /// 根据表达式查询分页
        ///

        ///
        public virtual List GetPageList(Expression> whereExpression, PageModel pageModel)
        {
            return CurrentDb.GetPageList(whereExpression, pageModel);
        }

        ///


        /// 根据表达式查询分页并排序
        ///

        /// it
        ///
        /// it=>it.id或者it=>new{it.id,it.name}
        /// OrderByType.Desc
        ///
        public virtual List GetPageList(Expression> whereExpression, PageModel pageModel, Expression> orderByExpression = null, OrderByType orderByType = OrderByType.Asc)
        {
            return CurrentDb.GetPageList(whereExpression, pageModel, orderByExpression, orderByType);
        }


        ///


        /// 根据主键查询
        ///

        ///
        public virtual T GetById(dynamic id)
        {
            return CurrentDb.GetById(id);
        }

        ///


        /// 根据主键查询
        ///

        ///
        public virtual T GetModel(Expression> whereExpression)
        {
            var list = CurrentDb.GetList(whereExpression);
            if (list != null && list.Count > 0)
                return list[0];
            else
                return null;
        }

        ///


        /// 根据主键删除
        ///

        ///
        ///
        public virtual bool Delete(dynamic id)
        {
            if (string.IsNullOrEmpty(Convert.ToString(id)))
            {
                Console.WriteLine(string.Format("要删除的主键id不能为空值!"));
            }
            return CurrentDb.DeleteById(id);
        }


        ///


        /// 根据实体删除
        ///

        ///
        ///
        public virtual bool Delete(T data)
        {
            if (data == null)
            {
                Console.WriteLine(string.Format("要删除的实体对象不能为空值!"));
            }
            return CurrentDb.Delete(data);
        }

        ///


        /// 根据主键删除
        ///

        ///
        ///
        public virtual bool Delete(dynamic[] ids)
        {
            if (ids.Count() <= 0)
            {
                Console.WriteLine(string.Format("要删除的主键ids不能为空值!"));
            }
            return CurrentDb.AsDeleteable().In(ids).ExecuteCommand() > 0;
        }

        ///


        /// 根据表达式删除
        ///

        ///
        ///
        public virtual bool Delete(Expression> whereExpression)
        {
            return CurrentDb.Delete(whereExpression);
        }


        ///


        /// 根据实体更新,实体需要有主键
        ///

        ///
        ///
        public virtual bool Update(T obj)
        {
            if (obj == null)
            {
                Console.WriteLine(string.Format("要更新的实体不能为空,必须带上主键!"));
            }
            return CurrentDb.Update(obj);
        }

        ///


        ///批量更新
        ///

        ///
        ///
        public virtual bool Update(List objs)
        {
            if (objs.Count <= 0)
            {
                Console.WriteLine(string.Format("要批量更新的实体不能为空,必须带上主键!"));
            }
            return CurrentDb.UpdateRange(objs);
        }

        ///


        /// 插入
        ///

        ///
        ///
        public virtual bool Insert(T obj)
        {
            return CurrentDb.Insert(obj);
        }


        ///


        /// 批量
        ///

        ///
        ///
        public virtual bool Insert(List objs)
        {
            return CurrentDb.InsertRange(objs);
        }

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/939601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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