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

各位別嫌棄我廢話太多,畢竟我們程序員是孤獨的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM