使用.NET6+MYSQL创建WebApi小项目,第一次学习C#的产物,有不足之处,请各位评论区指出一下。
一、创建项目
-
点击VS软件的“文件->新建->项目”,搜索框搜索“API”,下一步
-
填写项目名称等相关信息,下一步
-
选择.NET6,其他默认就可以,创建
-
这时项目已创建完成,目录如下
二、安装相应的程序包
- 鼠标右击项目的“依赖项”,选择管理NuGet程序包(或者在"工具->NuGet包管理器->管理解决方案的NuGet程序包"),安装以下三个包。
三、项目开始
- 在appsettings.json文件里,添加数据库连接字符串
"ConnectionStrings": { "MySQLConnection": "server=localhost;port=3306;uid=root;pwd=123456a.;database=testdata" },
uid是mysql数据库的用户名,pwd是mysql数据库的密码,database是数据库名称
在mysql数据库中,创建一个testdata数据库和student表
CREATE DATABASE `testdata` --创建数据库
use testdata --使用数据库
--创建数据库表
create table student(
stuId varchar(16) not null primary key unique,
stuName varchar(20) not null,
stuSex char(5) not null
)
- 在项目中,创建一个Models文件夹,用来存放实体类的。在Models文件夹下,创建Students.cs学生类和DataBaseContext.cs两个类。
Students.cs类,字段要与数据库表对应上using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace TestWebapi.Models { [Table("student")] public class Students { [Key] [Column("stuId")] public string StudentId { get; set; } [Required] [Column("stuName")] public string StuName { get; set; } [Required] [Column("stuSex")] public string StuSex { get; set; } } }
DataBaseContext.cs类
using Microsoft.EntityFrameworkCore;
namespace TestWebapi.Models
{
public class DatabaseContext : DbContext
{
public DatabaseContext(){}
public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options) { }
public DbSet<Students> Students { get; set; }
}
}
- 到启动类Program.cs注册数据库
builder.Services.AddDbContext<DatabaseContext>(opt => {
string connectionString = builder.Configuration.GetConnectionString("MySQLConnection");
var serverVersion = ServerVersion.AutoDetect(connectionString);
opt.UseMySql(connectionString, serverVersion);
});
添加在这里即可
- 接下来就是对数据库进行CRUD了,在Controllers文件夹下,创建一个StudentControlle.cs控制器。
StudentControlle.cs
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using TestWebapi.Models;
namespace TestWebapi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class StudentController : ControllerBase
{
private DatabaseContext db;
public StudentController(DatabaseContext database)
{
this.db = database;
}
//获取学生数据
[HttpGet("getStudent")]
public IActionResult getStudent()
{
List<Students> students = db.Students.ToList();
return Ok(students);
}
//添加一条学生信息
[HttpPost("addStudent")]
public IActionResult addStudent(Students students)
{
var student = db.Students.FirstOrDefault(stu => stu.StudentId == students.StudentId);
if (student != null)
{
return Ok("该学生学号已存在!");
}
db.Students.Add(students);
db.SaveChanges();
return Ok(students.StudentId + "学生添加完成");
}
//根据学生学号修改学生信息
[HttpPost("updateStudent")]
public IActionResult updateStudent(Students students) {
//判断该学号存不存在
var student = db.Students.FirstOrDefault(stu=>stu.StudentId==students.StudentId);
if (student == null) {
return BadRequest("修改学习失败");
}
student.StuName=students.StuName;
student.StuSex=students.StuSex;
db.Students.Update(student);
db.SaveChanges();
return Ok(student);
}
//根据学号删除学生信息
[HttpPost("delStudent")]
public IActionResult delStudent(string id) {
var student = db.Students.FirstOrDefault(stu=>stu.StudentId==id);
if (student == null) {
return NotFound();
}
db.Students.Remove(student);
db.SaveChanges();
return Ok(student);
}
}
}
运行效果
第一次学习c#,用不足之处,大家评论区告知一下,谢谢!