1.安装

首先使用nuget安装dapper,因为这里的示例是使用mysql,所以还要安装mysql的驱动。如下图:

2 数据库表 脚本

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for class
-- ----------------------------
DROP TABLE IF EXISTS `class`;
CREATE TABLE `class` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; -- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`class_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2001 DEFAULT CHARSET=utf8;

3 简单示例

这里的批量插入都是伪批量,实则是生成多条插入语句。有兴趣的可以看下面的博客实现真的批量插入。博客地址:http://www.cnblogs.com/renjing/p/MysqlBatchAdd.html
class Program
{
static string connStr = "server=127.0.0.1;user id=root;password=root;database=renjing;"; static void Main(string[] args)
{
Stopwatch watch = new Stopwatch();
watch.Start(); #region 1. 插入
//这里的批量插入都是伪批量,实则是生成多条插入语句。有兴趣的可以看下面的博客实现真的批量插入。
//http://www.cnblogs.com/renjing/p/MysqlBatchAdd.html
#region 1.0 批量插入。伪批量!
//using (MySqlConnection conn = new MySqlConnection(connStr))
//{
// for (int i = 1; i <= 1000; i++)
// {
// conn.Execute("insert into student(name,age,class_id) values(@name,@age,@class_id)", new { name = "小明" + i, age = i % 100 + 1, class_id = i % 3 + 1 });
// Console.WriteLine(i + ".插入成功。。。");
// }
//}
#endregion #region 1.2 批量插入。伪批量!
//using (MySqlConnection conn = new MySqlConnection(connStr))
//{
// var dataList = Enumerable.Range(1, 1000).Select(i => new { name="小明"+i, age = i % 100 + 1, class_id = i % 3 + 1 }); // int count = conn.Execute("insert into student(name,age,class_id) values(@name,@age,@class_id)", dataList);
// Console.WriteLine($"批量插入 {count} 条 成功!!!");
//}
#endregion
#endregion #region 2. 查询
#region 2.0 基本查询
//using (MySqlConnection conn = new MySqlConnection(connStr))
//{
// var students = conn.Query<Student>("select * from student;");
// //参数化查询
// //var students = conn.Query<Student>("select * from student where name=@name;", new { name = "小明13" }); // foreach (var item in students)
// {
// Console.WriteLine($"{item.id}\t{item.name}\t{item.age}");
// }
//}
#endregion #region 2.1 动态类型查询
//using (MySqlConnection conn = new MySqlConnection(connStr))
//{
// var students = conn.Query("select * from student;"); // foreach (var item in students)
// {
// Console.WriteLine($"{item.id}\t{item.name}\t{item.age}");
// }
//}
#endregion #region 2.2 多结果查询
//using (MySqlConnection conn = new MySqlConnection(connStr))
//{
// var multi = conn.QueryMultiple("select * from student;select * from class;"); // var studentList = multi.Read<Student>().ToList();
// var classList = multi.Read<Class>().ToList(); // Console.WriteLine($"student:{studentList.Count} 条!");
// Console.WriteLine($"classList:{classList.Count} 条!");
//}
#endregion #endregion #region 3. 修改
#region 3.0 修改
//using (MySqlConnection conn = new MySqlConnection(connStr))
//{
// var result = conn.Execute("update student set name=@name where id=@id;", new { name = "小明哥哥", id = 100 }); // Console.WriteLine("3.1 修改成功");
//}
#endregion #endregion #region 4. 删除
#region 4.1 删除
//using (MySqlConnection conn = new MySqlConnection(connStr))
//{
// var result = conn.Execute("delete from student where id=@id;", new { id = 100 }); // Console.WriteLine("4.1 删除成功");
//} #endregion
#endregion watch.Stop();
Console.WriteLine(watch.Elapsed); Console.Read();
}
}

示例源码:http://files.cnblogs.com/files/renjing/ORMTest.rar

git地址:https://github.com/RichRen/dapper

微型orm框架--dapper的简单使用的更多相关文章

  1. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  2. .NET轻量级ORM框架Dapper入门精通

    一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...

  3. Weed3 for java 新的微型ORM框架

    Weed3,微型ORM框架(支持:java sql,xml sql,annotation sql:存储过程:事务:缓存:监听:等...) 05年时开发了第一代: 08年时开发了第二代,那时候进入互联网 ...

  4. 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...

  5. c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比

    c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比对比 在6.22 号发布了 c# sqlsugar,his ...

  6. 轻量型ORM框架Dapper的使用

    在真实的项目开发中,可能有些人比较喜欢写SQL语句,但是对于EF这种ORM框架比较排斥,那么轻量型的Dapper就是一个不错的选择,即让你写sql语句了,有进行了关系对象映射.其实对于EF吧,我说下我 ...

  7. .Net开源微型ORM框架测评

    什么是ORM? 对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间 ...

  8. 轻量级ORM框架Dapper应用一:Dapper安装

    一.Dapper简介 Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS. 如果你在项目中遇到性能访问问题,选择Dapp ...

  9. ORM框架——Dapper的应用

    常见的ORM框架有EF,Dapper,NHibernate 参考:http://shuai7boy.iteye.com/blog/2357339 http://www.cnblogs.com/Sint ...

随机推荐

  1. Cacti+Nagios监控平台完美整合

    Cacti+Nagios监控平台完美整合 本博文出自51CTO博客吴光科博主,有任何问题请进入博主页面互动讨论!博文地址:http://wgkgood.blog.51cto.com/1192594/1 ...

  2. mvc拦截器

    在ASP.NET MVC中,有三种拦截器:Action拦截器.Result拦截器和Exception拦截器.这里说的是第一种和第三种.其实所谓的ASP.NET MVC拦截器,也没什么神秘的,就是一个普 ...

  3. NET Socket服务编程

    smark https://github.com/IKende/ .NET Socket服务编程之-高效连接接入编 在.NET上编写网络服务深入都有2,3年了,而这些时间时如何在.NET里实现网络服务 ...

  4. 因下面文的损坏或丢失windows/system32/config/system 解决方法

    这是因为你电脑的初始化文件遭破坏所致.导致破坏的原因也可能是病毒或其它原因. 因为Windows启动须要读取Syatem.ini,Win.ini和注冊表文件,假设C盘根文件夹下有config.sys, ...

  5. Android Intent 三解决

    Intent的接收处理: 1.Receiver报名 这之前已经被引入 然后看看剩下的两个接收功能上面. scheduleReceiver scheduleRegisteredReceiver: sch ...

  6. python进程池剖析(二)

    之前文章中介绍了python中multiprocessing模块中自带的进程池Pool,并对进程池中的数据结构和各个线程之间的合作关系进行了简单分析,这节来看下客户端如何对向进程池分配任务,并获取结果 ...

  7. 建立Ftp站点

    建立Ftp站点步骤: 1.首先创建一个用户 我的电脑右键->管理->本地用户和组->用户->“右键”新建用户->输入用户名和密码再点创建就行了! 2.其次是在C盘新建文件 ...

  8. messageBox以及新窗体的使用

    DialogResult dr = MessageBox.Show("你确定要点击吗", "安全提示", MessageBoxButtons.YesNo);   ...

  9. sqlite3结合ios开发

    简介:         SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp创建的公有领域项目. 不像常见的客户端/服务器结构范例,SQLite引 ...

  10. noip模拟赛:部队[技巧?思想?]

    王国军总指挥——卡西乌斯准将决定重建情报局,需要从全国各地挑选有能力的士兵,选择的标准为A,B两种能力.对于每个候选士兵,如果存在另一名士兵的两项能力均大于等于他,那么他将被淘汰.(注意:若两名士兵两 ...