DQL
来源:互联网 发布:怎么测试网络丢包率 编辑:程序博客网 时间:2024/05/31 13:14
对,你没有看错,这里是DQL而不是SQL。DQL是毛语言呢?Document Query Language,意思就是文档化的sql语句,为什么sql语句需要文档化呢?sql语句更倾向于表结构实现,所以在写sql语句的时候头脑中需要具现化的是表结构,而ORM的目的就是不需要开发者关注表结构,所以需要一个不基于表结构的查询语句,又能直接翻译成为SQL语句,这就是DQL。DQL可以直接对Entity进行增删改查,而不需要直接对表进行操作。
比如下面的一个例子:
$dql = "SELECT b, e, r FROM Bug b JOIN b.engineer e JOIN b.reporter r ORDER BY b.created DESC";$query = $entityManager->createQuery($dql);$query->setMaxResults(30);
$bugs=$query->getResult();
看这里的sql中From的就是“Bug”,这个是Entity的类,其实熟悉了sql,dql的查询语法也是一模一样的。
考虑使用dql而不是sql除了和ORM目标一致外,还有一个好处,就是存储层和逻辑层的耦合分开了。比如我的存储层要从mysql换成mongodb,那么逻辑层是什么都不需要动的。
原文地址:http://www.cnblogs.com/yjf512/p/3375614.html
0 0
- DQL
- DQL
- Dql汇总
- DQL查询
- DQL语句
- DQL语言
- DQL语言
- Some useful DQL tips
- Useful DQL Queries
- symfony中DQL
- Useful DQL Queries
- 第五章 DQL语句
- DML-DDL-DQL-DCL
- DQL关键字 ROW_BASED
- DQL汇总(2)
- 数据库DQL语句
- Sql入门--------DQL语言
- DDL,DQL,DCL,DML
- 15算法
- 【BDD】calabash 和 cucumber的使用
- Android Studio简单使用2
- L2-3. 月饼
- oracle 使用随笔
- DQL
- tableView的一些用法(持续更新)
- RGMII布线指导 RGMII Layout Guide
- Arduino 高级教程 01:基础篇
- Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式
- JS正则表达式详解
- 剑指offer之面试题27二叉搜索树与双向链表
- 基于common-fileupload实现文件上传
- 读书笔记(UIKit性能优化解析和Block经典实用)(一)