据我所知,大多数关系数据库不提供任何用于查询的驱动程序级API,只有query
将SQL字符串作为参数的函数除外。
我在想,如果可以做的话,会变得多么容易:
var result = mysql.select('article', {id: 3})
对于联接的表,它会稍微复杂一些,但仍然可能。例如:
var tables = mysql.join({tables: ['article', 'category'], on: 'categoryID'});
mysql.select(tables, {'article.id': 3}, ['article.title', 'article.body', 'category.categoryID'])
代码更简洁,没有字符串解析开销,没有注入问题,更易于重用查询元素...我可以看到很多优点。
为什么选择仅通过SQL提供对查询的访问有特定原因吗?