ORM机制简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORM机制简介相关的知识,希望对你有一定的参考价值。

1、定义
对象关系映射(英语:Object Relational Mapping,简称ORM),用于实现面向对象编程语言里不同类型系统的数据之间的转换.换句说,就是用面向对象的方式去操作数据库的创建表,增加、修改、删除、查询等操作

2、演示:查看ORM生成的sql语句:
A、使用QuerySet中的query属性
B、配置日志系统,将sql显示到控制台


def hello(request,a):
print(request.get_full_path())
user_list = User.objects.all()
print(user_list.query)
print(locals())
return render_to_response(‘table.html‘,locals())


输出内容:
th_user`.`id`, `auth_user`.`password`, `auth_user`.`last_login`, `auth_user`.`is_superuser`, `auth_user`.`username`, `auth_user`.`first_name`, `auth_user`.`last_name`, `au
th_user`.`email`, `auth_user`.`is_staff`, `auth_user`.`is_active`, `auth_user`.`date_joined` FROM `auth_user`
{‘a‘: ‘123‘, ‘user_list‘: [<User: admin>], ‘request‘: <WSGIRequest: GET ‘/hello/‘>}
[05/Dec/2017 20:35:07] "GET /hello/ HTTP/1.1" 200 1016


C、使用一些开发工具,django_debug_toolbar

3、ORM优缺点
1、ORM使得我们通过数据库交互变的简单易行,并且完全不用考虑该死的SQL语句,快速开发,由此而来
2、可以避免一些你搜程序猿写sql语句带来的性能和效率问题

缺点:
1、性能有所牺牲。不过现在的各种ORM框架都在尝试使用各种方法来减轻这个问题(LazyLoad,Cache),效果还是很显著的
2、对于个别复杂查询,ORM仍然力不从心。为了 解决这个问题,ORM框架一般也提供了直接原生sql的方式

以上是关于ORM机制简介的主要内容,如果未能解决你的问题,请参考以下文章

ORM模型简介

11 ORM简介

Django 基础 之ORM简介与单表操作

自制简单的.Net ORM框架 简介

JPA 简介

symfony的ORM模型简介