使用Java 11和JDBC。具有PostgreSQL表“ employee”:
我需要具有选择数据的能力,但我事先不知道将在什么条件下使用。
可能是:
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,将花费很多时间。
可能有一些库,已经有实现了。
尝试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");