在网页的文本字段中输入查询字符串,单击提交并返回查询结果
Posted
技术标签:
【中文标题】在网页的文本字段中输入查询字符串,单击提交并返回查询结果【英文标题】:enter query string in textfield on webpage, click submit and get query results back 【发布时间】:2019-04-16 07:07:47 【问题描述】:我正在寻找一种通用方法来将任何查询字符串(来自任何 oracle 表,非硬编码)从网页表单/字段传递到数据库,并使网页显示结果的表/网格。到目前为止,我看到的所有示例都需要在 github 上的 CRUD 应用程序中预先对列/表名进行硬编码。我希望能够从具有不同列、数据类型的各种表中获取结果。我不希望在应用程序中硬编码表/列。到目前为止,我一直在使用 SpringBoot 来接受 POST req 中的任何查询字符串并将结果作为 json 记录列表返回,但我想让它更具交互性,易于临时用户使用,因此寻求一些简单文本字段输入和动态结果网格的示例.
【问题讨论】:
【参考方案1】:看看 Knex.js:https://knexjs.org/
这是一个适用于不同数据库的查询构建器。这是他们文档中的一个小样本:
var knex = require('knex')(
client: 'oracle'
);
function handleRequest(req, res, next)
query = knex.select(req.body.columns).from(req.body.table);
console.log(query.toString()); // select "c1", "c2", "c3" from "some_table"
// Imagine this was invoked from Express and the body was already parsed.
handleRequest(
body:
table: 'some_table',
columns: ['c1', 'c2', 'c3']
);
如您所见,输入只是可以来自任何地方的字符串,包括客户端/最终用户。请注意连接到数据库的用户具有适当的授权(此处适用最低权限)。
【讨论】:
我不想硬编码列名。需要像websystique.com/spring-boot/… 这样的东西,但输出网格不是硬编码的cols,输入是sql。 这只是一个例子,输入可以来自任何地方。我已经用一个更清楚的例子更新了答案。以上是关于在网页的文本字段中输入查询字符串,单击提交并返回查询结果的主要内容,如果未能解决你的问题,请参考以下文章