参考:https://blog.csdn.net/weixin_41732430/article/details/83871216
ORM(Object Relation Mapper)
介绍Dapper之前不得不提及ORM,ORM是什么呢?
从字面理解,O是Object,对象;R是Relation,关系;M是Mapping,映射。所以,用一句话概括就是:ORM是一种对象关系映射的技术。
我们平时所使用的大多数编程模型都是面向对象编程,就是把我们研究的问题抽象出来分解成一个个对象,对象有属性,方法等等,我们操作的是对象。
而我们平时所使用的数据库是关系型数据库,他是从集合论等数学知识发展过来的,他讲究集合,映射,六大范式等等,跟我们的面向对象思想的封装继承多态不同,这两者之间有着根本性的差异。
所以我们就存在一个问题,怎么去调和二者,如果能有一种技术把对象与数据库对应起来,我们编程就会方便许多。于是,ORM应运而生,他就是为了解决对象与数据库之间的差异所产生的一门技术,用他可以把对象与数据库建立一种映射,对于业务层的程序员,他不用管数据库的结构,他只需要专注于他的业务逻辑去操作对象。至于对象怎么去变成元组进入数据库,以及怎么从数据库取数据变成对象,那是ORM自动解决的。
所以,ORM为对象关系映射器,它直接将数据库映射到C#对象。
有很多ORM框架可用,Dapper是其中之一,被称为ORM之王。
Dapper
1、速度快,性能好;
2、更少的代码行
3、对象映射
4、静态对象绑定
5、动态对象绑定
6、易于处理Sql语句
7、易于处理存储过程
8、直接操作IDBConnection类,该类直接向数据库提供平滑性和运行查询,而不是像在EF和ADO.NET中那样使用各种对象传递数据。
9、多个查询支持
10、支持存储过程
11、批量处理数据插入
12、允许基于多个输入获取多个数据
Dapper安装
- 鼠标右击项目下面的引用选项,进入NuGet,输入Dapper安装。(VS2013可用、VS2010不可用),
这种方法可能下载的是最新版本的可能编译后会出现如下错误
这时候就可以采用第二种方法:
- 直接去官网上找
dapper下载:
https://www.nuget.org/packages/Dapper/
找到一些低版本的去下载(亲测1.40.0可用)
- 还可以去github下载dapper源码
https://link.jianshu.com/?t=https://github.com/StackExchange/Dapper
编写程序
创建数据库以及写对应的类
- 用SQLiteStudio3.2.1可视化工具或者coding都可以创建一个db数据库文件
- 形成的类的属性要和上面创建的数据库相对应
public class BOOKINFO
{
public string user_id { get; set; }
public string book_id { get; set; }
public int book_price { get; set; }
public int user_age { get; set; }
public string user_habbit { get; set; }
}
编写读取程序
private static string LoadConnectString(string id = "F:\\C#联合SQLite学习\\C#DapperSQLite\\WindowsFormsApplication1\\AllCode.db")
{
SQLiteConnection dbConnection = new SQLiteConnection();
SQLiteConnectionStringBuilder dbConnectionstr = new SQLiteConnectionStringBuilder();
dbConnectionstr.DataSource = id;
return dbConnectionstr.ToString();
}
public static List<BOOKINFO> LoadPeople()
{
using (IDbConnection cnn = new SQLiteConnection(LoadConnectString()))
{
//cnn.Open();
var output = cnn.Query<BOOKINFO>("select * from bookinfo", new DynamicParameters());
foreach (var item in output)
{
string str = "名字: " + item.user_id + " 书名: " + item.book_id;
MessageBox.Show(str);
}
return output.ToList();
}
}
程序链接:https://download.csdn.net/download/jidxiaohuo/11798325
学如逆水行舟 不进则退 加油
转载:https://blog.csdn.net/jiDxiaohuo/article/details/101109381