分享

dotnetcore 3.0+Dapper+MySQL

 Jcstone 2019-05-06

1、vs2019 创建core 3.0 控制台应用;

2、Nuget程序包管理控制台依次安装mysql.data和dapper

Install-Package mysql.data

Install-Package Dapper

3、建立DBHelper.cs,方便不同数据库连接

  public class DBHelper

    {

        public static string providerName;

        public static string connectionString;

        public static IDbConnection OpenConnection()

        {

            return new MySqlConnection(connectionString);

        }  

    }

4、创建封装的dapper泛型数据库访问层

 public class Data<T> where T : class

    {

        #region 构造函数

        private static Data<T> _instance;

        public static Data<T> GetInstance()

        {

            if (_instance == null)

            {

                _instance = new Data<T>(); 

            }

            return _instance;

        }

        #endregion

        private IDbConnection context;  

        /// <summary>

        /// 添加

        /// </summary>

        /// <param name="query"></param>

        /// <param name="model"></param>

        /// <param name="context"></param>

        /// <param name="transaction"></param>

        /// <returns></returns>

        public int Add(string query, T model , IDbTransaction transaction = null)

        {

            if (context == null) context = DBHelper.OpenConnection();

            //  query += " ; select last_insert_rowid() newid";

            //  string id = context.ExecuteScalar(query, model, transaction).ToString();

            //  return ZConvert.StrToInt(id, 0);

            int id = context.Execute(query, model, transaction);

            return id;

        }

        /// <summary>

        /// 修改

        /// </summary>

        /// <param name="query"></param>

        /// <param name="model"></param>

        /// <param name="context"></param>

        /// <param name="transaction"></param>

        /// <returns></returns>

        public int Update(string query, T model , IDbTransaction transaction = null)

        {

            if (context == null) context = DBHelper.OpenConnection();

            int id = context.Execute(query, model, transaction);

            return id;

        }

        /// <summary>

        /// 删除

        /// </summary>

        /// <param name="tablename"></param>

        /// <param name="wheresql"></param>

        /// <param name="model"></param>

        /// <param name="context"></param>

        /// <param name="transaction"></param>

        /// <returns></returns>

        public int Delete(string query, T model , IDbTransaction transaction = null)

        {

            if (context == null) context = DBHelper.OpenConnection(); 

            int id = context.Execute(query, model, transaction);

            return id;

        }

        /// <summary>

        /// 获取单个实体

        /// </summary>

        /// <param name="tablename"></param>

        /// <param name="wheresql"></param>

        /// <param name="model"></param>

        /// <param name="context"></param>

        /// <param name="transaction"></param>

        /// <returns></returns>

        public T GetModel(string query, T model,  IDbTransaction transaction = null)

        {

            if (context == null) context = DBHelper.OpenConnection(); 

            T obj = context.Query<T>(query, model, transaction).SingleOrDefault();

            return obj;

        }

        /// <summary>

        /// 实体列表

        /// </summary>

        /// <param name="query"></param>

        /// <param name="model"></param>

        /// <param name="context"></param>

        /// <param name="transaction"></param>

        /// <returns></returns>

        public List<T> GetModelList(string query, T model , IDbTransaction transaction = null)

        {

            if (context == null) context = DBHelper.OpenConnection();

            List<T> list = context.Query<T>(query, model, transaction).ToList();

            return list;

        }

    }

5、调用示例

 static void Main(string[] args)

        {

            Console.WriteLine("Hello World!");

            DBHelper.connectionString = "server=localhost;port=3306;user=root;password=123456; database=taskms;";

            Data<customer> db = Data<customer>.GetInstance();

            List<customer> customers = db.GetModelList("select * from customer", new customer());

            Console.ReadKey(true);

        }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多