gpt4 book ai didi

java - 正则表达式替换java中查询参数中的值

转载 作者:行者123 更新时间:2023-12-02 06:23:55 26 4
gpt4 key购买 nike

我正在编写一个应用程序来搜索表单中的特定字段并向用户显示相应的查询(用户可以保存执行的查询并稍后加载查询)。我正在使用 API 根据所选字段生成查询。 API 以以下格式返回生成的查询。

生成的查询:

SELECT T0."id" AS "COL0" 
FROM student_table T0
WHERE ( ( ( T0."student_name" = ? )
AND ( T0."grade" = ? ) )
AND ( T0."student_no" LIKE ? ) )

预期查询:

SELECT T0."id" AS "COL0" 
FROM student_table T0
WHERE ( ( ( T0."student_name" = 'John' )
AND ( T0."grade" = 'A' ) )
AND ( T0."student_no" LIKE '12%' ) )

现在我必须根据上面的查询构建正确的查询。由于我在 from 中有字段值,所以我想替换“?”与相应的值。

是否可以替换“?”使用java字符串replaceAll方法与相应的字段值?我们可以使用反向引用的概念将问号替换为相应的值吗?如果正则表达式无法实现,请提出更好的方法来解决问题。

<小时/>

编辑

我认为准备好的语句不会有太大帮助,因为我需要对数百个无序字段自动执行此过程,而且这也是一项非常昂贵的操作。 (如果我错了请纠正我)

我实际上正在使用我公司特定的平台 API,我将条件和查询列添加到查询定义中,并以上述格式返回执行的查询。用户应该能够保存预期的查询,我应该在 UI 中显示查询和查询结果。

最佳答案

尝试按以下方式执行查询

  String insertTableSQL = "SELECT T0.\"ID\" AS \"COL0\" FROM STUDENT_TABLE T0 WHERE ( ( ( T0.\"STUDENT_NAME\" =  ?  ) AND ( T0.\"GRADE\" =  ?  ) ) AND ( T0.\"STUDENT_NO\" LIKE  ?  ) )";               
PreparedStatement preparedStatement = dbConnection.prepareStatement(insertTableSQL);

preparedStatement.setString(1, "John");
preparedStatement.setString(2, "A");
preparedStatement.setString(3, "12%");
preparedStatement.execute();

关于java - 正则表达式替换java中查询参数中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20756883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com