使用 JavaScript 的模版字符串可以比较方便的写多行的 SQL
const res = await db.query(`
SELECT *
FROM foo
WHERE foo.bar = 'baz'
`)
但是遇到 SQL 里面的反引号符号怎么处理呢?
const res = await db.query(`
SELECT \`name\`, \`privilege\`
FROM \`user\`
`)
还是要自己处理转义,一下很不直观了,说到底还是 JavaScript 不支持 Raw String,有没有什么比较好的解决方案呢?
https://stackoverflow.com/questions/31822891/how-to-build-dynamic-query-by-binding-parameters-in-node-js-sql
无用的答案
https://coderwall.com/p/yzwxyw/write-multiline-mysql-queries-in-javascript-using-sql-tag
为什么不用 orm 呢?
sequelize, 特殊情况下才自己拼接。或者 knexjs 之类的工具。
orm
https://github.com/PeterMu/nodebatis
https://github.com/lusakasa/sqorn/blob/master/README.md
SQL 中会有反引号的好像是 MySQL 特有的吧,PostgreSQL 似乎是用双引号的。
很有想法,用预处理
MyBatis 还魂