asp.net core 使用Mysql和Dapper
序曲:学习编程最好的方式就是敲代码,没有比这个更好的方法,哪怕你看了上百G的视频,都不如你自己敲几行代码更为有效。还有要记得敲完代码然后写一篇随笔来记录一下你所学所想。
大家都知道,.netcore是微软一个具有历史意义的产品,因为终于开始跨平台了,
敲了那么多年的代码,每次都被吐槽不能跨平台,现在终于开启了跨平台的脚步了。
既然跨平台了,那么我们是不是可以使用mysql了,毕竟mysql的使用率是非常的高,
各种解决方案和优化方案都非常的多。如果你不知道什么是mysql,那么你自己去百度一下。
好了,废话太多了,我们开始来讲一讲如何在core上使用mysql。
第一步,当然是引用对应的包了
本次主要是引用两个包,分别是
MySql.Data
Dapper

引用成功之后,就开始敲代码
本讲解使用的是core控制台
当然首先你得安装mysql到你的电脑上,或者安装到centOs上面
windows安装mysql,你可以看看这位的方案:https://www.cnblogs.com/xsmile/p/7753984.html
centOS7安装mysql,你可以看看这个:https://www.cnblogs.com/Jomini/p/10749657.html
本人的mysql是安装到我的windows上的
配置你的数据库连接,这个信息最好放在配置文件中,这次是为了演示,我就放在代码中
//配置你的数据库连接信息
private static string ConnString = "server=192.168.1.2;userid=root;pwd=123456;port=3306;database=redenvelopes;SslMode=none";
server是你的mysql安装到的机器上的ip地址
userid是mysql登录用户 pwd是登录密码
port是mysql的端口,一般情况下,mysql的默认端口就是3306
database是你的数据库名称
SslMode是SSL模式,这里为none
我们在以前写sql的时候,都习惯给自己写一个helper,但是这里不用了,别人都帮你写好了,你拿去直接调用即可
MySqlHelper包含了丰富的api,各种增删改查,也基本满足你的需求了,这个和以前使用没什么区别
class Program
{
//配置你的数据库连接信息
private static string ConnString = "server=192.168.1.2;userid=root;pwd=123456;port=3306;database=redenvelopes;SslMode=none";
static void Main(string[] args)
{
DataSet dataSet= MySqlHelper.ExecuteDataset(ConnString, "select * from luckmoney "); }
}
这个虽好,但是不利于封装到实体对象中,
所以我们引入了Dapper
如果学过java的人看到这个,是不是感觉挺眼熟,java中有一个mapper
本人也学过java,所以有这个感觉。
Dapper是一款轻量级ORM工具
为什么选择Dapper
- 轻量。只有一个文件(SqlMapper.cs)。
- 速度快。Dapper的速度接近与IDataReader,比DataTable好很多
- 支持多种数据库,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server
- 可以映射一对一,一对多,多对多等多种关系。
- 性能高。通过Emit反射IDataReader的序列队列,来快速的得到和产生对象,性能不错。
当然最重要的是使用起来非常的方便。
在我们上面代码基础上,引入Dapper后,你会发现变得不一样了
这里我们先加一个实体
如下所示:
MySqlConnection被扩展了更多的方法,这些都是Dapper所带来的
using MySql.Data.MySqlClient;
using System;
using System.Data;
using Dapper; namespace MySQL_Demo
{
class Program
{
//配置你的数据库连接信息
private static string ConnString = "server=192.168.1.2;userid=root;pwd=123456;port=3306;database=redenvelopes;SslMode=none";
static void Main(string[] args)
{
MySqlConnection mySqlConnection = new MySqlConnection(ConnString);
var list = mySqlConnection.Query<luckmoney>("select * from luckmoney ", null);
foreach (var item in list)
{
Console.WriteLine(item.id);
}
}
} public class luckmoney
{
public int id
{
get; set;
} public decimal money
{
get; set;
} public string consumer
{
get; set;
} public string producer
{
get; set;
}
}
}

如果你想用参数,也很简单,如下所示:
MySqlConnection mySqlConnection = new MySqlConnection(ConnString);
var list = mySqlConnection.Query<luckmoney>("select * from luckmoney where id=@id ",new { id= });
foreach (var item in list)
{
Console.WriteLine(item.id);
}
在这里我就不讲很复杂的东西,只是简单的引导你们怎么使用mysql和Dapper,希望大家多敲一敲代码,里面还有更多东西等你们探索。
总结:现在敲代码越来越方便了,以前还要自己去敲各种helper,现在别人都给你封装好了,你自己去使用就可以,可以说什么很方便了
但是不能因此不去探索这些东西的原理,不去探索,你只是敲代码的机器,探索了,你的代码就代入了你的思想和灵魂,我以前和大家一样
每天就是各种增删改查,各种copy,几年下来,东西没学到多少,年龄大了,更不好找工作。
各位别嫌弃我废话太多,毕竟我们程序员是孤独的。
asp.net core 使用Mysql和Dapper的更多相关文章
- Visual Studio Code和Docker开发asp.net core和mysql应用
Visual Studio Code和Docker开发asp.net core和mysql应用 .net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对 ...
- ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)
操作 MySql 数据库使用MySql.Data程序包(MySql 开发,其他第三方可能会有些问题). project.json 代码: { "version": "1. ...
- 记一次使用Asp.Net Core WebApi 5.0+Dapper+Mysql+Redis+Docker的开发过程
#前言 我可能有三年没怎么碰C#了,目前的工作是在全职搞前端,最近有时间抽空看了一下Asp.net Core,Core版本号都到了5.0了,也越来越好用了,下面将记录一下这几天以来使用Asp.Net ...
- ASP.NET Core 实战:基于 Dapper 扩展你的数据访问方法
一.前言 在非静态页面的项目开发中,必定会涉及到对于数据库的访问,最开始呢,我们使用 Ado.Net,通过编写 SQL 帮助类帮我们实现对于数据库的快速访问,后来,ORM(Object Relatio ...
- Asp.Net Core 连接Mysql
上一篇文章里最后在VS里测试是没有问题的,但是在Windows命令行模式下会报错. 首先用dotnet restore命令的时候会出现error: 然后用dotnet run会出现警告,但是依旧会成功 ...
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
.net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对岸的苹果园越来越茂盛,实在不想再去做一只宅猿了.于是,.net猿决定搭上小鲸鱼的渡轮到苹果园去看 ...
- 在Asp.Net Core中集成ABP Dapper
在实际的项目中,除了集成ABP框架的EntityFrameworkCore以外,在有些特定的场景下不可避免地会使用一些SQL查询语句,一方面是由于现在的EntityFrameworkCore2.X有些 ...
- Asp.Net Core链接Mysql数据库
一.新建一个Asp.Net Core WebMVC程序 添加nuget包 Mysql.Data 二.新建一个UserContext类 下面代码中的UserInfo是我自己建的一个实体,里面有俩字段: ...
- asp.net core容器&mysql容器network互联 & docker compose方式编排启动多个容器
文章简介 asp.net core webapi容器与Mysql容器互联(network方式) docker compose方式编排启动多个容器 asp.net core webapi容器与Mysql ...
随机推荐
- 一、mysql数据库,忘记密码怎么处理及处理过程中遇见的问题
1.输入cmd命令打开控制台: 2.进入mysql.exe所在的路径: 3.执行mysqld --skip-grant-tables(注意:在输入此命令之前先在任务管理器中结束mysqld.exe进程 ...
- cogs 1377. [NOI2011] NOI嘉年华 (dp
题意:给你n个活动的起止时间,要你从中选一些活动在2个会场安排(不能有两个活动在两个会场同时进行),使活动较少的会场活动数最大,以及在某个活动必须选择的前提下,求该答案. 思路:由于n很小,时间很大, ...
- CodeForces 1107 F Vasya and Endless Credits
题目传送门 题解: 需要注意到的是 每个offer都获益都是会随着时间的增加而渐少(或不变). 所以我们可以知道,最多在第n个月的时候这个人会买车离开. solve1:最优2分图匹配 我们可以把每个月 ...
- Oracle 优化器_表连接
概述 在写SQL的时候,有时候涉及到的不仅只有一个表,这个时候,就需要表连接了.Oracle优化器处理SQL语句时,根据SQL语句,确定表的连接顺序(谁是驱动表,谁是被驱动表及 哪个表先和哪个表做链接 ...
- webstorm 突然不能用了?解决办法~
首先 感谢http://idea.lanyus.com 提供的试用方法,就在刚刚,webstorm突然就不能使了,http://idea.lanyus.com立马给出了解决办法,就是在hosts文 ...
- .NET Core 微信小程序退款——(统一退款)
继上一篇".NET Core 微信小程序支付——(统一下单)后",本文将实现统一退款功能,能支付就应该能退款嘛,一般涉及到钱的东西都会比较敏感,所以在设计退款流程时一定要严谨,不能 ...
- 全网最实用的 Debug调试技巧汇总-Python大佬偷偷使用的神技
一.思考❓❔ 1.什么是debug? 找茬 找软件的茬 发现程序的缺陷 2.为什么需要debug? 谁都不敢保证,写的代码没有任何问题 高效查找软件异常 一位优秀的开发工程师 20%的时间写代码 80 ...
- 实验吧CTF练习题---WEB---貌似有点难解析
实验吧web之貌似有点难 地址:http://www.shiyanbar.com/ctf/32 flag值:SimCTF{daima_shengji} 解题步骤: 1.打开题目页面,观察题目要 ...
- Factory Method工厂方法模式
定义一个用于创建对象的接口,让子类决定将哪一个类实例化.Factory Method使一个类的实例化延迟到其子类,属于创建型模式 在此模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类负责生产 ...
- jinfo Java配置信息工具
jinfo(Configuration info for Java) jinfo的作用是实时地查看和调整虚拟机各项参数. jinfo 命令格式: jinfo [ option ] pid pid是虚拟 ...