数据库名称: postgres
数据库版本: 1.20 beta 1
内容/问题描述:
我想要查询一笔资料
可以任选三个条件或一个, 也可以一个条件都不选(列出全资料)
以下是我的写法
StringBuilder sb = new StringBuilder();
sb.append("SELECT new map( 资料 FROM 表单");
if(!条件1.equals("none")){
sb.append(" WHERE 字段1 = 条件1");
if(!条件2.equals("none")){
sb.append(" AND 字段2 = 条件2");
if(!条件3.equals("none"))
sb.append(" AND 字段3 = 条件3");
}
if(!条件3.equals("none"))
sb.append(" AND 字段3 = 条件3");
}
else if(!条件2.equals("none")){
sb.append(" WHERE 字段2 = 条件2");
if(!条件3.equals("none"))
sb.append(" AND 字段3 = 条件3");
}
else if(!条件3.equals("none"))
sb.append(" WHERE 字段3 = 条件3");
sb.append(" ORDER BY ?");
缺点当然就是3个条件就有7种组合
要是条件增加, 语句就会很臃肿.....
========================================================================
请问有比较灵活的写法吗 ?
感谢解答