有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

sql有任何Java“通用”查询或过滤语言实现吗?

在尝试搜索答案时,我发现ANTLR似乎是实现查询语言的一般任务的标准/参考实现

似乎每个面临任务的人都在做同样的事情——学习什么是ANTLR,如何配置它,如何使用它,然后构建自己的QL实现

基本/通用查询语言(如Hibernate或Cassandra中使用的语言,它们实际上在幕后使用ANTLR)或常规SQL的“where”部分难道没有免费/开放的示例或参考实现吗?我确实相信这是许多项目的一项非常常见的任务,如果每个人都从头开始重新实现它(这意味着ANTLR学习曲线),那就太可惜了

例如这里:Implementing free form query language in Java 公认的答案是:

The problem is that there is no such thing as a generic query language. Each one is different, and yours is no exception

我不同意上面的说法,因为SQL、Cassandra的QL和HibernateQL有90%以上的相似性,所以它们之间有一个共同的部分,我正在寻找这个部分,希望不要重新实现轮子

以下示例之间的任何综合程度都可以:

第1级:

  1. “x=1”
  2. “x=2”
  3. “x=3”

查询/筛选:“x>;1”,预期结果:2和3

第二级:

  1. “x=1,y=1”
  2. “x=2,y=2”
  3. “x=3,y=3”

查询/筛选:“x>;1和y<;3”,预期结果:2

第三级:

  1. “x=1,y=1”
  2. “x=2,y=2”
  3. “x=3,y=3”

查询/筛选:“x>;1和(y>;2或y>;3)”,预期结果:2

级别N:

  1. “x=1,y=1”
  2. “x=2,y=2”
  3. “x=3和y='3 | 4 | 5'”

查询/筛选:“(x>;2或x in('z',1))和(y in(1,2)或(y类似于“%3%”和y类似于“%5%”) 预期结果:1和3

问题:是否有一个现有的(基于或不基于ANTLR的)Java解决方案(可扩展或不可扩展)可用于(作为框架或作为构建/扩展的示例)作为上述类似示例的查询/过滤引擎


p.S.在这里做了一些“家庭作业”,但似乎没有一个能回答我的特定主题。。。也许2019年的期望太高了:)


共 (0) 个答案