一切福田,不離方寸,從心而覓,感無不通。

Dapper功能讲解

  • 简述
  • 适用特性
  • 使用Dapper流程
  • 代码示例

简述

Dapper是一个轻量级的ORM工具:ORM框架的核心思想是对象关系映射,ORM是将表与表之间的操作,映射成对象和对象之间的操作,就是通过操作实体类来达到操作表的目的。从数据库提取的数据会自动按你设置的映射要求封装成特定的对象。之后你就可以通过对对象进行操作来修改数据库中的数据。这时候你面对的不是信息的碎片,而是一个形象鲜明的对象。
ORM 框架很多: Dapper、 Mybatis.Net、EntityFramework 和 NHibernate。如果你在小的项目中,使用Entity Framework、NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀。而Mybatis.Net需要配置XML文件,综合考虑你会觉得觉得ORM省时省力。


适用特性

  • 1、Dapper是一个轻型的ORM类。代码就一个SqlMapper.cs文件,编译后就70K。
  • 2、Dapper很快。Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。
  • 3、Dapper支持多数据库。Dapper支持Mysql,SqlLite,SqlServer,Oracle等一系列的数据库。
  • 4、Dapper支持多表并联的对象。支持一对多 多对多的关系。并且没侵入性,想用就用,不想用就不用。无XML无属性。代码以前怎么写现在还怎么写。
  • 5、Dapper原理通过Emit反射IDataReader的序列队列,来快速的得到和产生对象。性能很高(性能和原生ado.net相近)。
  • 6、Dapper支持net2.0,3.0,3.5,4.0。【如果想在Net2.0下使用,可以去网上找一下Net2.0下如何配置运行Net3.5即可。】
  • 7、Dapper语法十分简单,快捷添加到项目,容易上手。并且无须迁就数据库的设计。

适用Dapper流程

流程一:

通过NuGet程序包进行Dapper安装引用: 这个引用的Dapper DLL文件是对前面说的SqlMapper.cs 源文件的封装。

20170907181409915

流程二:

  1. 我们这里用Mysql数据库,那么用到的MySql.Data.dll在官网下载.net驱动包(已经附加在此教程demo中)
    mysql .net连接驱动下载地址:http://dev.mysql.com/downloads/connector/net/

示例代码

  • 1、定义一个Person类对应数据库的Person表

 

  • 2、定义连接数据库字符串

 

  • 3、 新增、修改、删除的 Execute 方法

批量新增 和新增一条语句是一样的,后面的param 是object 对象,单个模型数据和集合都可以支持。执行上面方法会插入多条记录,这样sql可以灵活的控制,参数不用像ADO.Net那样声明每个参数,最后还要把参数集合赋值给ADO的命令。可以看出这样简洁多了。

  • 4、 查询的Query 方法

 

  • 5、存储过程调用

 

  • 6、多个数据库插入数据

通过上面的代码演示主要常用的是:封装后 Query 方法、Excute 方法。(其底层的封装的方法可以见源码:513

from:https://blog.csdn.net/laokang426/article/details/77885137