asp.net core 使用Mysql和Dapper
- 2019 年 10 月 4 日
- 筆記
序曲:學習編程最好的方式就是敲程式碼,沒有比這個更好的方法,哪怕你看了上百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
- 輕量。只有一個文件(SqlMapper.cs)。
- 速度快。Dapper的速度接近與IDataReader,比DataTable好很多
- 支援多種資料庫,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server
- 可以映射一對一,一對多,多對多等多種關係。
- 性能高。通過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,幾年下來,東西沒學到多少,年齡大了,更不好找工作。
各位別嫌棄我廢話太多,畢竟我們程式設計師是孤獨的。