序曲:學習編程最好的方式就是敲代碼,沒有比這個更好的方法,哪怕你看了上百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,幾年下來,東西沒學到多少,年齡大了,更不好找工作。
各位別嫌棄我廢話太多,畢竟我們程序員是孤獨的。