Dapper怎么连接MySQL数据库 Dapper for MySQL配置方法

来源:这里教程网 时间:2026-02-21 17:34:26 作者:

Dapper 本身不直接处理数据库连接,它依赖 ADO.NET 提供的数据库驱动。要让 Dapper 连上 MySQL,关键其实是配置好 MySql.Data 驱动 + 正确的连接字符串 + 标准的 IDbConnection 使用方式。下面几步走完,基本就通了。

装对两个 NuGet 包

缺一不可:

Dapper:轻量级 ORM 扩展库,提供 Query、Execute 等便捷方法 MySql.Data:Oracle 官方提供的 .NET MySQL 驱动(推荐用 8.0.x 或 8.3.x,兼容 .NET 6/7/8/9)

安装方式任选其一:
• 在包管理控制台运行:
Install-Package Dapper
Install-Package MySql.Data

• 或在 .csproj 中手动添加引用:

<PackageReference Include="Dapper" Version="2.1.35" /><br><PackageReference Include="MySql.Data" Version="8.3.0" />

写好 MySQL 连接字符串

推荐放在 appsettings.json 里,方便管理与切换环境:

"ConnectionStrings": {<br>  "DefaultConnection": "Server=localhost;Port=3306;Database=mydb;User ID=root;Password=123456;SslMode=None;Allow User Variables=true;"<br>}

注意几个实用细节:

Port 显式写上更稳妥(默认 3306),尤其部署到 Docker 或远程服务器时 SslMode=None 是本地开发常用设置;生产环境如需 SSL,设为 Required 并配证书 Allow User Variables=true 可避免某些含 @ 变量的 SQL 报错(比如存储过程或动态查询) 密码含特殊字符?建议 URL 编码,或改用
MySqlConnectionStringBuilder
构造

用 MySqlConnection 套 Dapper 方法

核心就是:创建

MySqlConnection
实例 → 打开 → 丢给 Dapper 的扩展方法用。不需要额外封装也能跑起来:

string connStr = Configuration.GetConnectionString("DefaultConnection");<br>using var conn = new MySqlConnection(connStr);<br>conn.Open();<br><br>var users = conn.Query<User>("SELECT * FROM Users WHERE Age > @age", new { age = 18 });

常见写法提示:

using
自动释放连接,别忘了
Open()
(Dapper 不会帮你开)
参数统一用
@xxx
占位符,Dapper 会自动映射匿名对象或实体属性
如果执行增删改,用
Execute()
;查单个用
QuerySingle()
QueryFirstOrDefault()

可选:加一层基础仓储封装

项目稍大时,建议把连接逻辑抽成基类,避免每个 Repository 都重复 new MySqlConnection:

public class BaseRepository<br>{<br>  protected readonly string _connStr;<br>  public BaseRepository(IConfiguration config) => _connStr = config.GetConnectionString("DefaultConnection");<br><br>  protected IDbConnection CreateConnection() => new MySqlConnection(_connStr);<br>}

子类直接调用

CreateConnection()
,再传给 Dapper,干净又可控。

不复杂但容易忽略:驱动版本匹配、连接字符串权限、防火墙端口、MySQL 用户 host 设置(比如 root@localhost ≠ root@%)。连不上先查这四点。

相关推荐