asp.net core 使用Mysql和Dapper

序曲:学习编程最好的方式就是敲代码,没有比这个更好的方法,哪怕你看了上百G的视频,都不如你本身敲几行代码更为有效。还有要记得敲完代码而后写一篇随笔来记录一下你所学所想。html

你们都知道,.netcore是微软一个具备历史意义的产品,由于终于开始跨平台了,java

敲了那么多年的代码,每次都被吐槽不能跨平台,如今终于开启了跨平台的脚步了。mysql

既然跨平台了,那么咱们是否是可使用mysql了,毕竟mysql的使用率是很是的高,git

各类解决方案和优化方案都很是的多。若是你不知道什么是mysql,那么你本身去百度一下。程序员

好了,废话太多了,咱们开始来说一讲如何在core上使用mysql。github

第一步,固然是引用对应的包了sql

本次主要是引用两个包,分别是数据库

MySql.Data编程

Dapperwindows

 

 

 引用成功以后,就开始敲代码

本讲解使用的是core控制台

固然首先你得安装mysql到你的电脑上,或者安装到centOs上面

windows安装mysql,你能够看看这位的方案:https://www.cnblogs.com/xsmile/p/7753984.html

centOS7安装mysql,你能够看看这个:https://www.cnblogs.com/Jomini/p/10749657.html

本人的mysql是安装到个人windows上的

配置你的数据库链接,这个信息最好放在配置文件中,此次是为了演示,我就放在代码中

//配置你的数据库链接信息
        private static string ConnString = "server=192.168.1.2;userid=root;pwd=123456;port=3306;database=redenvelopes;SslMode=none";
server是你的mysql安装到的机器上的ip地址
userid是mysql登陆用户

pwd是登陆密码
port是mysql的端口,通常状况下,mysql的默认端口就是3306
database是你的数据库名称
SslMode是SSL模式,这里为none

咱们在之前写sql的时候,都习惯给本身写一个helper,可是这里不用了,别人都帮你写好了,你拿去直接调用便可
MySqlHelper包含了丰富的api,各类增删改查,也基本知足你的需求了,这个和之前使用没什么区别
class Program
    {
        //配置你的数据库链接信息
        private static string ConnString = "server=192.168.1.2;userid=root;pwd=123456;port=3306;database=redenvelopes;SslMode=none";
        static void Main(string[] args)
        {
            DataSet dataSet= MySqlHelper.ExecuteDataset(ConnString, "select  * from  luckmoney ");
             
        }
    }

这个虽好,可是不利于封装到实体对象中,

因此咱们引入了Dapper

若是学过java的人看到这个,是否是感受挺眼熟,java中有一个mapper

本人也学过java,因此有这个感受。

Dapper是一款轻量级ORM工具

为何选择Dapper

  1. 轻量。只有一个文件(SqlMapper.cs)。
  2. 速度快。Dapper的速度接近与IDataReader,比DataTable好不少
  3. 支持多种数据库,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server
  4. 能够映射一对一,一对多,多对多等多种关系。
  5. 性能高。经过Emit反射IDataReader的序列队列,来快速的获得和产生对象,性能不错。
固然最重要的是使用起来很是的方便。
在咱们上面代码基础上,引入Dapper后,你会发现变得不同了
这里咱们先加一个实体
以下所示:
MySqlConnection被扩展了更多的方法,这些都是Dapper所带来的
using MySql.Data.MySqlClient;
using System;
using System.Data;
using Dapper;

namespace MySQL_Demo
{
    class Program
    {
        //配置你的数据库链接信息
        private static string ConnString = "server=192.168.1.2;userid=root;pwd=123456;port=3306;database=redenvelopes;SslMode=none";
        static void Main(string[] args)
        {
            MySqlConnection mySqlConnection = new MySqlConnection(ConnString);
            var list = mySqlConnection.Query<luckmoney>("select  * from  luckmoney ", null);
            foreach (var item in list)
            {
                Console.WriteLine(item.id);
            }
        }
    }

    public class luckmoney
    {
        public int id
        {
            get; set;
        }

        public decimal money
        {
            get; set;
        }

        public string consumer
        {
            get; set;
        }

        public string producer
        {
            get; set;
        }
    }
}

 

 

 若是你想用参数,也很简单,以下所示:

MySqlConnection mySqlConnection = new MySqlConnection(ConnString);
            var list = mySqlConnection.Query<luckmoney>("select  * from  luckmoney  where id=@id  ",new { id=1 });
            foreach (var item in list)
            {
                Console.WriteLine(item.id);
            }

在这里我就不讲很复杂的东西,只是简单的引导大家怎么使用mysql和Dapper,但愿你们多敲一敲代码,里面还有更多东西等大家探索。

总结:如今敲代码愈来愈方便了,之前还要本身去敲各类helper,如今别人都给你封装好了,你本身去使用就能够,能够说什么很方便了

可是不能所以不去探索这些东西的原理,不去探索,你只是敲代码的机器,探索了,你的代码就代入了你的思想和灵魂,我之前和你们同样

天天就是各类增删改查,各类copy,几年下来,东西没学到多少,年龄大了,更很差找工做。

各位别嫌弃我废话太多,毕竟咱们程序员是孤独的。

相关文章
相关标签/搜索