Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JSON查询过滤器转换为SQL?_Java_Sql_Json - Fatal编程技术网

Java 将JSON查询过滤器转换为SQL?

Java 将JSON查询过滤器转换为SQL?,java,sql,json,Java,Sql,Json,我正在寻找一个java库,它可以将json输入动态转换为SQL 例如,库可能需要以下json数据: { "rules": [ { "field": "firstname", "value": [ "John", "Doe" ], "operator": "in" }, {

我正在寻找一个
java
库,它可以将
json
输入动态转换为
SQL

例如,库可能需要以下json数据:

{
    "rules": [
        {
            "field": "firstname",
            "value": [
                "John",
                "Doe"
            ],
            "operator": "in"
        },
        {
            "rules": [
                {
                    "field": "age",
                    "value": 18,
                    "operator": "EQUALS"
                }
            ],
            "condition": "AND"
        }
    ]
}
然后应该能够将其转换为动态sql查询:

SELECT * FROM persons where firstname IN ("John", "Doe") AND age = 18;

是否有任何现有框架可供我构建?

我不确定库是否能获得预期的输出。但是您可以使用以下代码来编写Java方法

假设输入是JSON对象

    JSONObject jo = (JSONObject) obj; 

    // getting fieldname and operator
    String field= (String) jo.get("field"); 
    String operator= (String) jo.get("operator"); 
    //getting values
    JSONArray ja = (JSONArray) jo.get("value"); 

    // iterating values
    Iterator itr2 = ja.iterator();  

然后您可以使用上面的代码编写动态SQL查询。

是的,但我必须实现特定的SQL语法进行解析。我希望能有一个图书馆,这样我就不必重新发明轮子了。你可以检查这个url:它不是你想要的,但也许你能改变你的要求?无论如何,我创建了这个库:。也许可以直接创建sql查询,而不是像您那样创建过滤器?