答:ORM(Object-relational
mapping)即对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。也就是说,ORM是通过使用描述对象和数据库之间映射的元数据(映射文件信息),将程序中的对象自动持久化到关系数据库中。说白了就是将相应的实体映射到相应的数据库表,然后使用orm框架封装好的api进行数据库访问,减少了自己写数据库访问类的步骤。
2、ORM框架的优缺点是?
ORM框架的优点:
- 操作简单,提高开发效率
- 支持面向对象封装
- 可移植
- 减少重复性代码
ORM框架的缺点:
- 处理多表联查之类的查询时,ORM的语法会变得很复杂
- 执行性能较低(但现在有一些轻型ORM框架,性能接近原生SQL)
如下表格,展示的是四种ORM框架Crud的性能,其中,
(1)增查删改都是循环5次,每次增删改1万条数据,查询是每次查询10万条数据,取5次的平均值;
(2)批量增删改都是循环5次,每次增删改10万条数据,取5次平均值:
由上表可知,各种框架CRUD的性能如下(由快到慢):
(1)循环CRUD操作的性能如下:
新增:SqlSugar>DOS.ORM>Freesql>EF
删除:SqlSugar>DOS.ORM>Freesql>EF
修改:SqlSugar>DOS.ORM>Freesql>EF
查询:SqlSugar>DOS.ORM>EF>Freesql
综上可知:SqlSugar框架的CRUD性能是最高的,其中EF除了查询比较快之外,删改所花费的时间都是其他三种框架的4~5倍,而新增就是20倍左右!
(2)循环批量CRUD的性能如下:
批量新增:Freesql=SqlSugar>DOS.ORM>EF
批量修改:Freesql=SqlSugar>EF>DOS.ORM
批量删除:Freesql=SqlSugar>EF
注解1:Freesql是有批量新增的方法BulkInsert,故其批量新增操作与其他框架一样。但是,Freesql没有批量修改、删除的方法,如下代码片段:
注解2:DOS.ORM批量删除超过2009条数据时就会报错,如下图:
综上,只有SqlSugar涵盖的方法比较多,而且速度也较快!
答:四种框架都支持:
基本查询、多表查询、分组查询、批量增删改操作、存储过程、事务、执行SQL、日志等功能。
答:个人比较推荐SqlSugar,原因如下:
(1)只要下载了SqlSugar包后,就可以直接按照官网的例子进行编码,日志跟踪方面我认为是最简单已用的,且文档写得比较好、可由代码生成数据库,可以快速上手。
(2)Freesql与SqlSugar差不多,但是由于我觉得SqlSugar日志跟踪方面做得比较好且可以由代码生成数据库,且Freesql对批量操作的支持不是很好,只能批量新增(且没有返回值),不能批量删除、修改,所以我才选择SqlSugar:
(3)Dos.ORM是这三个框架里面最不好上手,不能直接自己创建类文件,而是需要下载官网推荐的代码生成器去生成相应的类,然后才能进行数据库的访问,否则插入删除等操作都会报错,所以就个人而言,不推荐用这个,认为学习成本比其他两个高。