zoukankan      html  css  js  c++  java
  • .net core系列之《.net core中使用MySql以及Dapper》

    当我们决定使用.Net Core开发的时候,就放弃使用SqlServer的打算吧。那应该选择哪个数据库呢?一般选择MySql的比较多。

    接下来我们来演示在.Net Core中使用MySQL吧。

    1、原生模式(不要忘记安装 MySql.Data )

        class Users
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string UserName { get; set; }
            public string Password { get; set; }
            public string Email { get; set; }
        }
            static void Main(string[] args)
            {
                var connString = "server=192.168.254.135;userid=root;pwd=123456;port=3306;database=Sample;SslMode=none;";
                string sql = "SELECT * FROM Users";
                List<Users> users = new List<Users>();
                using (MySqlConnection conn = new MySqlConnection(connString))
                {
                    conn.Open();
                    using (MySqlCommand cmd = new MySqlCommand(sql, conn))
                    {
                        MySqlDataReader dr = cmd.ExecuteReader();
                        while (dr.Read())
                        {
                            users.Add(new Users
                            {
                                Id = Convert.ToInt32(dr["Id"]),
                                Name = dr["Name"].ToString(),
                                UserName = dr["UserName"].ToString(),
                                Password = dr["Password"].ToString(),
                                Email = dr["Email"].ToString(),
                            });
                        }
                    }
                }
                users.ForEach(u =>
                {
                    Console.WriteLine($"{u.Id}. 姓名:{u.Name},用户名:{u.UserName}");
                });
    
                Console.ReadKey();
            }

     结果如下:

    2、MySqlHelper类:MySql.Data命名空间下为我们封装好了一个MySqlHelper类,一些基本常用的操作都给我们封装好了

            static void Main(string[] args)
            {
                var connString = "server=192.168.254.135;userid=root;pwd=123456;port=3306;database=Sample;SslMode=none;";
                string sql = "INSERT INTO Users(Name,UserName,Password,Email) VALUES ('tangsan','tangsan','123456','55@qq.com')";
                List<Users> users = new List<Users>();
                int result = MySqlHelper.ExecuteNonQuery(connString, sql);
                Console.WriteLine($"result={result}");
                sql = "SELECT * FROM Users";
                MySqlDataReader dr = MySqlHelper.ExecuteReader(connString, sql);
                while (dr.Read())
                {
                    users.Add(new Users
                    {
                        Id = Convert.ToInt32(dr["Id"]),
                        Name = dr["Name"].ToString(),
                        UserName = dr["UserName"].ToString(),
                        Password = dr["Password"].ToString(),
                        Email = dr["Email"].ToString(),
                    });
                }
                users.ForEach(u =>
                {
                    Console.WriteLine($"{u.Id}. 姓名:{u.Name},用户名:{u.UserName}");
                });
                Console.ReadKey();
            } 

    结果如下:

    由上面的代码可以看出,动作查询还是很方便的,但是查询一个集合的时候还是挺麻烦的,接下来我们用Dapper来试试吧:

    我们可以看出这个类是没有扩展方法的,现在我们打开NuGet安装包安装Dapper后再来看看

     

    这就是Dapper为MySqlConnection类封装的扩展类。

            static void Main(string[] args)
            {
                var connString = "server=192.168.254.135;userid=root;pwd=123456;port=3306;database=Sample;SslMode=none;";
                string sql = "SELECT * FROM Users";
                IEnumerable<Users> users = new List<Users>();
                {
                    using (MySqlConnection conn = new MySqlConnection(connString))
                    {
                        conn.Open();
                        users= conn.Query<Users>(sql);
                    }
                    users.ToList().ForEach(u =>
                    {
                        Console.WriteLine($"{u.Id}. 姓名:{u.Name},用户名:{u.UserName}");
                    });
                }
                Console.ReadKey();
            }

     结果如下:

  • 相关阅读:
    [笔记]JavaScript 秘密花园
    jQuery效果之jQuery Color animation 色彩动画扩展
    【vue】常见开发知识点与问题整理(持续更新)
    JS ES6中的箭头函数(Arrow Functions)使用
    JS之console.log详解以及兄弟姐们邻居方法扩展
    字符编码ASCII、Unicode 、UTF-8 及实例汉字与Unicode码的相互转化
    JS之表单提交时编码类型enctype详解
    JS之onunload、onbeforeunload事件详解
    《从零开始学习jQuery》:用jQuery操作元素的属性与样式
    vue+vuecli+webpack中使用mockjs模拟后端数据
  • 原文地址:https://www.cnblogs.com/hhzblogs/p/9732636.html
Copyright © 2011-2022 走看看