.NET Core 中,可以使用 Dapper 库来轻松执行 SQL 语句并进行数据库操作。本文主要介绍.NET Core中,通过Dapper操作连接MySQL数据库,执行SQL语句实现增删改查的代码。

1、安装引用MySQL和Dapper

MySQL的NuGet地址https://www.nuget.org/packages/MySql.Data

使用命令安装

Install-Package MySql.Data 
Install-Package Dapper

Nuget管理器中搜索"MySql.Data"和"Dapper",然后分别点击“安装

相关文档VS(Visual Studio)中Nuget的使用

2、创建MySQL测试库脚本

CREATE DATABASE `cjavapy` 

CREATE TABLE `user` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `UserName` varchar(255) DEFAULT NULL,
  `Age` int(11) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

3、使用Dapper执行SQL语句增删改查

用到的User实现类

public class User
{
    publicint Id { get; set; }
    publicstring UserName { get; set; }
    publicint Age { get; set; }
}

执行SQL语句增删改查

1)注册字符编码提供者

确保支持 GBK 等非 UTF-8 编码。

// 为解决字符集问题,注册CodePagesEncodingProvider
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

2)连接 MySQL

使用连接字符串连接 MySQL 数据库,并通过 using 语句确保在操作完成后释放连接。

string connectionString = 
"server=127.0.0.1;database=test;uid=root;pwd=;charset='gbk';SslMode=None";
using (IDbConnection dbConnection = new MySqlConnection(connectionString))
{
    dbConnection.Open();
}

3)插入数据

通过 Execute 方法执行插入操作。

string insertSql = 
"INSERT INTO user (UserName, Age) VALUES (@UserName, @Age)";
dbConnection.Execute(insertSql, new { UserName = "cjavapy", Age = 30 });

4)插入数据并返回自增的 ID

通过 QuerySingle<int> 方法获取刚插入数据的自增 ID。

string insertWithIdSql = 
"INSERT INTO user (UserName, Age) VALUES (@UserName, @Age);"
+
" SELECT LAST_INSERT_ID();";
int newUserId = dbConnection.QuerySingle<int>(insertWithIdSql, 
new { UserName = "cjavapy", Age = 38 });

5)更新数据

使用 Execute 方法更新数据。

string updateSql = "UPDATE user SET UserName = @UserName WHERE Id = @Id";
dbConnection.Execute(updateSql, 
new { UserName = "updatedUser", Id = newUserId });

6)查询数据

使用 Query<User> 方法查询所有用户数据。

string selectSql = "SELECT * FROM user";
var users = dbConnection.Query<User>(selectSql);

7)删除数据

string deleteSql = "DELETE FROM user WHERE Id = @Id";
dbConnection.Execute(deleteSql, new { Id = newUserId });

推荐文档