向用户公开数据库查询

时间:2018-09-23 16:24:28

标签: java android sql sqlite

假设我有一个表,其中包含“名称”,“年龄”,“城市”,“国家”列。我想向用户展示数据库查询界面,也就是说,他们应该能够执行user postgres run env # HOME=/var/lib/pgsql env PGDATA=$HOME/data run env # PGDATA=/data 我们要做的各种查询。

我能想到的唯一方法是在每一列中都有一行,其中每一行都是以下形式:

sql

活动中的示例查询为:

column name | operator | value

然后使用该信息,我可以让一个方法执行查询并返回结果。 对于这个简单的示例,它将起作用。但是还有更多有趣的事情可以问name | = | Bob age | > | 25 ,而这种方法在很多查询中都会失败。

对此我该怎么办?

1 个答案:

答案 0 :(得分:2)

首先,您需要考虑要允许用户执行哪些操作。最常见的SQL查询是 SELECT INSERT UPDATE DELETE 。获得要提供的操作列表后,您需要考虑用户在进行任何这些查询时可以选择的参数。例如,如果用户想获取(选择)某些数据,那么在您的情况下,他可以提供什么作为输入。其他查询也是如此。

因此,一旦获得了以上信息,就需要将其转换为查询。这可以通过创建一个实用程序或帮助程序类来完成,该类考虑用户查询以及参数并形成可以在数据库上执行的SQL查询。

例如,让我们进入StackOverflow作业页面(https://stackoverflow.com/jobs?med=site-ui&ref=jobs-tab)。在这里,您可以看到用户可以基于多个参数来获取数据,这些参数包括关键字,位置,远程等。考虑到此示例,您的实用程序将创建一个SELECT查询并传递用户选择的参数并生成以下形式的SQL查询

SELECT jobs WHERE is_remote=<user_param> AND tech=<user_param> AND compensation=<user_param>

这只是需要做的事情的概述。根据您的确切用例,可能会有一些更改。但这仅涵盖了您需要实现的目标。