Symfony 原则中的Dql选择与sql查询

Symfony 原则中的Dql选择与sql查询,symfony,doctrine-orm,doctrine,Symfony,Doctrine Orm,Doctrine,与本机sql相比,在条令中的“select”语句中使用DQL有什么好处 e、 g vs 我和我的同事讨论了这个问题,他说原生sql更好。 我认为dql使我们能够更改数据库驱动程序。使用dql还有其他好处吗?性能如何?(DQL)就像是查询的抽象。这使得查询独立于构建项目的(SQL)数据库的版本或类型 从文件中: 您需要将DQL看作是对象模型的查询语言,而不是关系模式的查询语言 这也意味着(就像@Matteo在他的评论中所说的),你可以更容易地将你的项目移植到另一种类型上,而不必重写所有的查询 使用

与本机sql相比,在条令中的“select”语句中使用DQL有什么好处

e、 g

vs

我和我的同事讨论了这个问题,他说原生sql更好。 我认为dql使我们能够更改数据库驱动程序。使用dql还有其他好处吗?性能如何?

(DQL)就像是查询的抽象。这使得查询独立于构建项目的(SQL)数据库的版本或类型

从文件中:

您需要将DQL看作是对象模型的查询语言,而不是关系模式的查询语言

这也意味着(就像@Matteo在他的评论中所说的),你可以更容易地将你的项目移植到另一种类型上,而不必重写所有的查询


使用将这种抽象提升到了一个新的层次。

DQL在数据库之间比本机SQL更具可移植性。此外,如果使用查询缓存,则性能不会有问题,因为它可以保存SQL和DQL之间的转换
     $qb = $em->getRepository('repositoryname')->createQueryBuilder('r);
     $qb->someDqlCondition();
     $qb->getQuery()->getResult();
     $sql = 'string with SELECT sql statement'
     $query = $em->->createQuery($sql)
     $query->getResult();