Java 如何使用JSqlParser向sql添加where条件?

Java 如何使用JSqlParser向sql添加where条件?,java,sql,jsqlparser,Java,Sql,Jsqlparser,我想使用JSqlParser将where条件添加到sql中,例如: 之前: select * from test_table where a=1 group by c 之后: select * from test_table where a=1 and b=2 group by c 但是,我找不到任何示例代码 一种解决方案是: String sql = "select * from test_table where a=1 group by c"; Select select = (Sele

我想使用JSqlParser将where条件添加到sql中,例如:

之前:

select * from test_table where a=1 group by c
之后:

select * from test_table where a=1 and b=2 group by c
但是,我找不到任何示例代码

一种解决方案是:

String sql = "select * from test_table where a=1 group by c";
Select select = (Select) CCJSqlParserUtil.parse(sql);
Expression where = CCJSqlParserUtil.parseCondExpression("a=1 and b=2");
((PlainSelect) select.getSelectBody()).setWhere(where);
System.out.println(select.toString());
首先,您必须解析现有的SQL。使用此PlainSelectcast,您可以访问语句的where子句,至少可以访问它所包含的对象

where表达式是使用方便的方法
CCJSqlParserUtil.parseconexpression
生成的

这些语句的输出为:

SELECT * FROM test_table WHERE a = 1 AND b = 2 GROUP BY c

欢迎您,张俊龙!这些答案对你有帮助吗?@MartinJ.H。谢谢,但是没用。我想用一个Java库操作sql查询——JSqlParserIs有没有一种方法可以在不重写的情况下向sql添加条件?只需替换where语句即可。取它所具有的表达式并添加所需内容。您可以使用a=1和b=2重写a=1条件。问题是我想在当前条件中添加新条件。当您从PlainSelect获取where表达式时,表达式并没有添加函数来添加新条件。创建一个AndExpression,将left设置为actual,将right设置为new condition,然后使用setWhere进行设置。