(二)2、webapi連接MySQL


既然作為中間件,就需要,前,與前端進行數據交互;后,與數據庫進行數據交互,在上一步,我們已經把數據發送出來了,只要在前端調用數據就好,下面我們就介紹如何連接數據庫。在(一)部分中,我也已經搭建好了服務器和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)的創建


免責聲明!

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



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