.Net Core 项目使用Dapper框架操作MySql数据库

940 阅读1分钟

一共三个步骤:

一、先完成准备工作

备注:我这是 .Net6.0的项目

1.引入Nuget包 Dapper.Contrib 和 MySql.Data 两个包

2.在appsettings.json配置文件中写好数据库连接字符串路径

image.png

二、书写MySqlDBHelper数据库连接辅助类

1.MySqlDBHelper数据库连接辅助类
using MySql.Data.MySqlClient;

namespace ReadJson_.Net6._0.Utils
{
    public class MySqlDBHelper
    {

        /// <summary>
        /// 数据库连接字符串
        /// </summary>
        public static string DB_CONNECTION_STRING { get; set; }

        /// <summary>
        /// 获取数据库连接
        /// </summary>
        /// <returns></returns>
        public static MySqlConnection GetSqlConnection()
        {
            return new MySqlConnection(DB_CONNECTION_STRING);
        }
    }
}
2.绑定数据库连接字符串

image.png

三、在控制器中书写,需要的操作方法

using Dapper;
using Microsoft.AspNetCore.Mvc;
using ReadJson_.Net6._0.Model;
using ReadJson_.Net6._0.Utils;

namespace ReadJson_.Net6._0.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class DapperController : ControllerBase
    {
        /// <summary>
        /// 查询
        /// </summary>
        /// <returns></returns>
        [HttpGet("Select")]
        public object Select()
        {
            string sql = $@"SELECT * FROM School";
            using var conn = MySqlDBHelper.GetSqlConnection();
            #region 异步多线程使用
            //await conn.OpenAsync();
            //var result = await conn.QueryAsync<School>(sql).ConfigureAwait(false);
            #endregion
            #region 同步使用
            conn.Open();
            var result = conn.Query<School>(sql).ToList();
            #endregion
            return Ok();
        }
        /// <summary>
        /// 添加
        /// </summary>
        /// <returns></returns>
        [HttpGet("Add")]
        public object Add(string id, string name)
        {
            string sql = $@"INSERT INTO School(id,`Name`)
                        VALUES(@id,@Name)";
            using var conn = MySqlDBHelper.GetSqlConnection();

            #region 异步多线程使用
            //await conn.OpenAsync();
            //var result = await conn.ExecuteAsync(sql, new { id = id, name }).ConfigureAwait(false);
            #endregion

            #region 同步使用
            conn.Open();
            var result = conn.Execute(sql, new { id = id, name });
            #endregion
            return Ok();
        }
        /// <summary>
        /// 修改
        /// </summary>
        /// <returns></returns>
        [HttpGet("Update")]
        public object Update(string id)
        {
            string sql = $@"UPDATE School SET `Name`= '某某某大学' WHERE id IN @id";
            using var conn = MySqlDBHelper.GetSqlConnection();

            #region 异步多线程使用
            //await conn.OpenAsync();
            //var result = await conn.ExecuteAsync(sql, new { id = id }).ConfigureAwait(false);
            #endregion

            #region 同步使用
            conn.Open();
            var result = conn.Execute(sql, new { id = id });
            #endregion
            return Ok();
        }
        /// <summary>
        /// 删除
        /// </summary>
        /// <returns></returns>
        [HttpGet("Delete")]
        public object Delete(string id)
        {
            string sql = $@"Delete School WHERE id IN @id";
            using var conn = MySqlDBHelper.GetSqlConnection();

            #region 异步多线程使用
            //await conn.OpenAsync();
            //var result = await conn.ExecuteAsync(sql, new { id = id }).ConfigureAwait(false);
            #endregion

            #region 同步使用
            conn.Open();
            var result = conn.Execute(sql, new { id = id });
            #endregion
            return Ok();
        }
    }
}

Dapper框架:我这里只是简单的罗列了一些常用的同步&异步的增删改查方法,Dapper还有更多的操作方法,大家可以多加学习!!!