【发布时间】:2018-09-23 16:24:27
【问题描述】:
假设我有一个包含“名称”、“年龄”、“城市”、“国家”列的表。我想把数据库查询接口暴露给用户,也就是他们应该能够执行sql让我们做的各种查询。
我能想到的唯一方法是为每一列设置一行,其中每一行的格式为:
column name | operator | value
活动中的示例查询是:
name | = | Bob
age | > | 25
然后有了这些信息,我可以让一个方法执行查询并返回结果。
对于这个简单的例子,它会起作用。但是还有更多有趣的事情可以问sql,而这种方法在很多问题上都会失败。
对此我能做些什么?
【问题讨论】:
-
数据库和 JDBC 已经 provide metadata 关于您的表和列,因此您无需存储它们。只需让您的数据库告诉您表中有哪些列、它们的数据类型、它们的名称等。
-
最通用的机制是允许 SQL 查询。