在原则vs本机sql的'select'语句中使用DQL有什么好处?
例如
$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使我们能够更改数据库驱动程序。使用dql还有其他好处吗?性能如何?
主义查询语言(DQL)就像查询的抽象。这使查询独立于项目所基于的(SQL)数据库的版本或类型。
从文档中:
您需要考虑将DQL作为对象模型而不是关系模式的查询语言。
这也意味着(就像@Matteo在他的评论中所说),您可以更轻松地将项目移植到另一种类型上,而不必重写所有查询。
使用该学说会使QueryBuilder
这种抽象更上一层楼。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句