1. 程式人生 > >asp.net core 使用Mysql和Dapper

asp.net core 使用Mysql和Dapper

序曲:學習程式設計最好的方式就是敲程式碼,沒有比這個更好的方法,哪怕你看了上百G的視訊,都不如你自己敲幾行程式碼更為有效。還有要記得敲完程式碼然後寫一篇隨筆來記錄一下你所學所想。

大家都知道,.netcore是微軟一個具有歷史意義的產品,因為終於開始跨平臺了,

敲了那麼多年的程式碼,每次都被吐槽不能跨平臺,現在終於開啟了跨平臺的腳步了。

既然跨平臺了,那麼我們是不是可以使用mysql了,畢竟mysql的使用率是非常的高,

各種解決方案和優化方案都非常的多。如果你不知道什麼是mysql,那麼你自己去百度一下。

好了,廢話太多了,我們開始來講一講如何在core上使用mysql。

第一步,當然是引用對應的包了

本次主要是引用兩個包,分別是

MySql.Data

Dapper

 

 

 引用成功之後,就開始敲程式碼

本講解使用的是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,幾年下來,東西沒學到多少,年齡大了,更不好找工作。

各位別嫌棄我廢話太多,畢竟我們程式設計師是孤獨的。

&n