全球共有10多个国家和地区1000多个平台,20万+商户使用
四种ORM框架的对比
作者: 陈发林 发布时间: 2024-04-07 163 分类专栏: 后端开发
ORM(Object-relational mapping)即对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。也就是说,ORM是通过使用描述对象和数据库之间映射的元数据(映射文件信息),将程序中的对象自动持久化到关系数据库中。说白了就是将相应的实体映射到相应的数据库表,然后使用orm框架封装好的api进行数据库访问,减少了自己写数据库访问类的步骤。
ORM框架的优点:
(1)操作简单,提高开发效率。
(2)支持面向对象封装。
(3)可移植。
(4)减少重复性代码
ORM框架的缺点:
(1)处理多表联查之类的查询时,ORM的语法会变得很复杂。
(2)执行性能较低(但现在有一些轻型ORM框架,性能接近原生SQL)。
如下表格,展示的是四种ORM框架Crud的性能,其中,
(1)增查删改都是循环5次,每次增删改1万条数据,查询是每次查询10万条数据,取5次的平均值;
(2)批量增删改都是循环5次,每次增删改10万条数据,取5次平均值:
由上表可知,各种框架CRUD的性能如下(由快到慢):
(1)循环CRUD操作的性能如下:
新增:SqlSugar>DOS.ORM>Chloe>EF
删除:SqlSugar>DOS.ORM>Chloe>EF
修改:SqlSugar>DOS.ORM>Chloe>EF
查询:SqlSugar>DOS.ORM>EF>Chloe
综上可知:SqlSugar框架的CRUD性能是最高的,其中EF除了查询比较快之外,删改所花费的时间都是其他三种框架的4~5倍,而新增就是20倍左右!
(2)循环批量CRUD的性能如下:
批量新增:Chloe>SqlSugar>DOS.ORM>EF
批量修改:Chloe>SqlSugar>EF>DOS.ORM
批量删除:Chloe>SqlSugar>EF
注解1:Chloe是有批量新增的方法BulkInsert,故其批量新增操作与其他框架一样。但是,Chloe没有批量修改、删除的方法,如下代码片段:
注解2:DOS.ORM批量删除超过2009条数据时就会报错,如下图:
综上,只有SqlSugar涵盖的方法比较多,而且速度也较快!
四种框架都支持:基本查询、多表查询、分组查询、批量增删改操作、存储过程、事务、执行SQL、日志等功能。
个人比较推荐SqlSugar,原因如下:
(1)只要下载了SqlSugar包后,就可以直接按照官网的例子进行编码,日志跟踪方面我认为是最简单已用的,且文档写得比较好、可由代码生成数据库,可以快速上手。
(2)Chloe与SqlSugar差不多,但是由于我觉得SqlSugar日志跟踪方面做得比较好且可以由代码生成数据库,且Chloe对批量操作的支持不是很好,只能批量新增(且没有返回值),不能批量删除、修改,所以我才选择SqlSugar:
(3)Dos.ORM是这三个框架里面最不好上手,***不能***直接自己创建类文件,而是需要下载官网推荐的***代码生成器***去生成相应的类,然后才能进行数据库的访问,否则插入删除等操作都会报错,所以就个人而言,不推荐用这个,认为学习成本比其他两个高。
(4)EF是重量级ORM框架,上面三种框架有的功能它都有,且有微软这个大厂在背后支撑,百度谷歌可以轻易搜索到大多数问题的解决方法,一开始,只要修改类结构,容易遇到与"dbo.Migrationary"相关的错误(这是需要了解codefirst数据库迁移方面的知识,可通过这边文章了解https://blog.csdn.net/xwnxwn/article/details/90171519),如果想用的功能不多,且不想框架太大的话,就还是推荐上面三种。
(5)四种框架中,SqlSugar进行CRUD的性能最高,而EF最慢。
陈发林
小当家ISV,重庆APP开发,小程序开发,软件系统开发 地址:重庆市南岸区南坪万达广场写字楼2栋19-6 联系电话:023-81361879
ICP备案号:渝ICP备15003473-1 增值电信业务许可证: 渝B2-15003473 渝公网安备 50010802005103号
友情链接: 小当家点餐收银系统 MagicShop商城 重庆微信营销 重庆智能家居 重庆红岭医院
重庆小当家互联网信息技术有限公司