在网页的文本字段中输入查询字符串,单击提交并返回查询结果

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。 这只是一个例子,输入可以来自任何地方。我已经用一个更清楚的例子更新了答案。

以上是关于在网页的文本字段中输入查询字符串,单击提交并返回查询结果的主要内容,如果未能解决你的问题,请参考以下文章

Java和HTMLUnit:如何点击提交按钮?

求助!怎样向别人的网站提交表单并返回信息?

从 Angular Material 2 中的 MdDialog 返回数据

在按钮单击时将文本添加到现有输入字段

如何在颤动中显示带有提交按钮和隐藏输入字段的html表单

如何在执行php脚本后将mysql查询结果返回到html页面?