DQL
2016-05-12 13:46
302 查看
对,你没有看错,这里是DQL而不是SQL。DQL是毛语言呢?Document Query Language,意思就是文档化的sql语句,为什么sql语句需要文档化呢?sql语句更倾向于表结构实现,所以在写sql语句的时候头脑中需要具现化的是表结构,而ORM的目的就是不需要开发者关注表结构,所以需要一个不基于表结构的查询语句,又能直接翻译成为SQL语句,这就是DQL。DQL可以直接对Entity进行增删改查,而不需要直接对表进行操作。
比如下面的一个例子:
看这里的sql中From的就是“Bug”,这个是Entity的类,其实熟悉了sql,dql的查询语法也是一模一样的。
考虑使用dql而不是sql除了和ORM目标一致外,还有一个好处,就是存储层和逻辑层的耦合分开了。比如我的存储层要从mysql换成mongodb,那么逻辑层是什么都不需要动的。
原文地址:http://www.cnblogs.com/yjf512/p/3375614.html
比如下面的一个例子:
$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
相关文章推荐
- 默认构造函数
- tableView的一些用法
- 【BDD】calabash 和 cucumber的使用
- 术语学习
- Android—自定义开关按钮实现
- 水仙花数
- Android Studio简单使用2
- Template's Template
- oracle 使用随笔
- 微信&java 开发7 js sdk 获取签名 signature
- 个人CSS问题的记录
- Git Shell使用笔记
- 如何利用BI搭建电商数据分析平台
- 如何利用BI搭建电商数据分析平台
- url、href、src 详解
- python中实现将普通字典dict转换为java中的treeMap
- TFS - 使用微软测试管理器实现跨团队项目的测试用例管理
- 14横屏
- Block源码解析和深入理解
- 深入分析 Java 中的中文编码问题