既然作为中间件,就需要,前,与前端进行数据交互;后,与数据库进行数据交互,在上一步,我们已经把数据发送出来了,只要在前端调用数据就好,下面我们就介绍如何连接数据库。在(一)部分中,我也已经搭建好了服务器和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)的创建