在Java JDBC中使用dynamic where子句

问题描述 投票:0回答:1

使用Java 11和JDBC。具有PostgreSQL表“ employee”:

enter image description here

我需要具有选择数据的能力,但我事先不知道将在什么条件下使用。

可能是:

SELECT * FROM employee WHERE job_name='PRESIDENT';
SELECT * FROM employee WHERE job_name='PRESIDENT' OR salary>6000;
SELECT * FROM employee WHERE salary<5000 AND manager_id=68319;

在代码中编写所有可能的SQL,将花费很多时间。

可能有一些库,已经有实现了。

java postgresql jdbc
1个回答
0
投票

尝试sqlBuilder [http://sqlobject.org/SQLBuilder.html]。它支持基于条件构建动态where子句。如下所示

  var query = SQL
  .SELECT("*")
  .FROM("employee")
  .WHERE()
  ._If(job_name=="PRESIDENT", "job_name = {0}", job_name)

  .ORDER_BY("job_name"); 
© www.soinside.com 2019 - 2024. All rights reserved.