.NET6+MYSQL的WebApi实现(本人c#小白)

使用.NET6+MYSQL创建WebApi小项目,第一次学习C#的产物,有不足之处,请各位评论区指出一下。

一、创建项目

  1. 点击VS软件的“文件->新建->项目”,搜索框搜索“API”,下一步
    在这里插入图片描述

  2. 填写项目名称等相关信息,下一步 在这里插入图片描述

  3. 选择.NET6,其他默认就可以,创建
    在这里插入图片描述

  4. 这时项目已创建完成,目录如下
    在这里插入图片描述

二、安装相应的程序包

  1. 鼠标右击项目的“依赖项”,选择管理NuGet程序包(或者在"工具->NuGet包管理器->管理解决方案的NuGet程序包"),安装以下三个包。
    在这里插入图片描述

三、项目开始

  1. 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
)

在这里插入图片描述

  1. 在项目中,创建一个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; }
    }
}

  1. 到启动类Program.cs注册数据库
builder.Services.AddDbContext<DatabaseContext>(opt => {
    string connectionString = builder.Configuration.GetConnectionString("MySQLConnection");
    var serverVersion = ServerVersion.AutoDetect(connectionString);
    opt.UseMySql(connectionString, serverVersion);
});

添加在这里即可
在这里插入图片描述

  1. 接下来就是对数据库进行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#,用不足之处,大家评论区告知一下,谢谢!

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值