既然作為中間件,就需要,前,與前端進行數據交互;后,與數據庫進行數據交互,在上一步,我們已經把數據發送出來了,只要在前端調用數據就好,下面我們就介紹如何連接數據庫。在(一)部分中,我也已經搭建好了服務器和MySQL了,這里說明一下,不管是本機虛擬機搭建的還是雲服務器搭建,都是可以的,一樣的。
動手前讓我們思考一下,我們要連接MySQL,但是我們憑什么說連就連,人家MySQL不要面子的嗎?
所以在MySQL里面,我們就要創建一個用戶(我們安裝與配置MySQL中已經創建一個myUser的用戶了),然后給這個用戶授予操縱數據庫的權限,再在webapi里面創建該用戶的連接字符串就好了,至於連接字符串是什么,后面會說到的。
同時又因為在.net core 並沒有內置操縱MySQL的工具,所以首先我們就要安裝一個工具,來操縱數據庫,這個就是EF core(Entity Framework Core),專業術語叫ORM工具(Object Relational Mapping),類似的還有dapper(這個是我第一個使用的ORM工具)。那就先來安裝吧
1)工具-Nuget包管理器-管理解決方案的Nuget程序包
2) 瀏覽-輸入MySQL-找到MySQL.Data.EntityFramworkCore,安裝
3) 打開目錄中的Startup.cs-->ConfigureServices方法,進行數據庫配置
public void ConfigureServices(IServiceCollection services)
{
//數據庫配置
services.AddDbContext<Join>(options =>
options.UseMySQL(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}
這時可能會提示錯誤,但是不要怕,其中的Join(即上面的藍色字)先不用管,點中“UseMySQL”,然后點擊左邊的黃色小燈泡,點擊“using Microsoft.EntityFrameworkCore”,然后我們的一個錯誤就消失了,
然后最上面也會增加一行,灰色的表示還沒有使用過的,
看着難受的話,可以右鍵,選擇“對Using進行刪除和排序”就好
4)然后看到橙黃色字體沒有“DefaultConnection”,這就是我們的連接字符串…的變量,一般我會把連接字符串放到與Startup.cs目錄下的appsetting.json中
{
"ConnectionStrings": {
"DefaultConnection": "server=192.168.253.129;userid=myUser;pwd=123456;port=3306;database=example;sslmode=none;"
}, //以上為數據庫連接字符串
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
}
}
至於其中的"server=192.168.253.129;userid=myUser;pwd=123456;port=3306;database=example;sslmode=none;"就是傳說中的連接字符串了,但是我們需要在服務器里的MySQL里進行設置了,因為這部分屬於MySQL,所以我就不寫了,詳情請參考安裝與配置MySQL
這里就稍微介紹一下參數
server:MySQL所在的服務器的IP地址
userid:被授權的用戶名
pwd:被授權的用戶名的密碼
port:MySQL的端口號,默認3306
database:要用到的數據庫
sslmode:至於為什么有這個參數,網上的解釋是“鏈接字符串要加上 SslMode=None 不然會報錯誤:SSL not supported in this WinRT release.”,因為我一直是加上的,所以也就沒遇到過錯誤。
走起,下一步,相關數據模型(models)的創建