之前介紹了My Blog如何使用ADO.NET來訪問SQL Server獲取數據。本章將介紹如何使用My SQL來完成數據管理。
在使用My SQL之前需確保開發環境中安裝了My SQL數據庫和Connector/Net,后者是一個用C#編寫的ADO.NET數據提供器,換句話說無論使用SQL Server還是My SQL,ASP.NET都是通過ADO.NET來訪問、操作數據庫的,它們唯一的區別是數據提供器,所以連接My SQL仍然需要使用System.Data.dll中的類型,以下是之前文章所介紹的:
唯一不同的是My SQL的ADO.NET數據提供器是需要安裝Connector/Net。
本文通過以下兩點來介紹如何在ASP.NET中使用My SQL數據庫:
●安裝My SQL和Connector/NET
●為My SQL創建一個新的倉儲項目
安裝My SQL和Connector/NET
Connector/NET下載地址: https://dev.mysql.com/downloads/windows/installer/
MySQL下載地址(安裝時可以直接選擇是否安裝Connector/NET): https://dev.mysql.com/downloads/mysql/
完成后添加數據表與數據:
為My SQL創建一個新的倉儲項目
為其創建一個新的項目原因是讓SQL Server與My SQL共存,二者不會互相影響,到后期可以通過簡單的修改來切換使用的數據庫的目的。
1. 創建一個新的類庫項目BlogRepository.MySQL,並引用Mysql.Data(注:Mysql.Data需要安裝Connector/NET):
2. 使用執行SQL的方式實現一個BlogRepository:
與SQL Server的代碼對比,只有對象名稱、SQL以及連接字符串存在差異。
3. 變更邏輯層的引用,使用BlogRepository.MySQL,並修改錯誤的命名空間:
4. 運行程序:
小結
本章介紹了如何在ASP.NET中使用MySQL數據庫,它的使用方式與SQL Server基本相同,只需要安裝連接My SQL需要的組件即可。另外需要注意的一個問題是,現在在整個解決方案中分別有BlogRepository以及BlogRepository.MySQL兩個倉儲類庫,分別對於SQL Server和My SQL但是邏輯層只有一個,這就意味着每次更換數據庫業務邏輯庫不僅要更換引用,還要修改代碼。這就是典型的依賴實現而沒有依賴抽象的問題。這個問題會在后續介紹解決方法。
參考:
https://dev.mysql.com/doc/connector-net/en/connector-net-programming-connecting.html