Dql select in doctrine vs sql query
Dql select in doctrine vs sql query
在学说 'select' 语句中使用 DQL 与本机 sql 相比有什么好处?
例如
$qb = $em->getRepository('repositoryname')->createQueryBuilder('r);
$qb->someDqlCondition();
$qb->getQuery()->getResult();
对
$sql = 'string with SELECT sql statement'
$query = $em->->createQuery($sql)
$query->getResult();
我和同事讨论过,他说原生 sql 更好。
我认为 dql 使我们能够更改数据库 driver.Is 使用 dql 还有其他好处吗?性能怎么样?
Doctrine Query Language (DQL) 就像您的查询的抽象。这使得查询独立于您的项目所基于的 (SQL) 数据库的版本或类型。
来自文档:
You need to think about DQL as a query language for your object model, not for your relational schema.
这也意味着(就像@Matteo 在他的评论中所说的那样)您可以更轻松地将您的项目移植到另一种类型上,而无需重写所有查询。
使用 the doctrine QueryBuilder
将这种抽象提升到一个新的水平。
在学说 'select' 语句中使用 DQL 与本机 sql 相比有什么好处?
例如
$qb = $em->getRepository('repositoryname')->createQueryBuilder('r);
$qb->someDqlCondition();
$qb->getQuery()->getResult();
对
$sql = 'string with SELECT sql statement'
$query = $em->->createQuery($sql)
$query->getResult();
我和同事讨论过,他说原生 sql 更好。 我认为 dql 使我们能够更改数据库 driver.Is 使用 dql 还有其他好处吗?性能怎么样?
Doctrine Query Language (DQL) 就像您的查询的抽象。这使得查询独立于您的项目所基于的 (SQL) 数据库的版本或类型。
来自文档:
You need to think about DQL as a query language for your object model, not for your relational schema.
这也意味着(就像@Matteo 在他的评论中所说的那样)您可以更轻松地将您的项目移植到另一种类型上,而无需重写所有查询。
使用 the doctrine QueryBuilder
将这种抽象提升到一个新的水平。