【发布时间】:2020-06-12 03:14:19
【问题描述】:
如何在 spring jdbc 模板中使用 IN 子句或如何在我查询 db 时过滤掉所有与字符串不匹配的值 我可以使用流 API 获取所有值是否可以跳过仅添加 FinancialTx.getActivationCode() 匹配项到 VPMA 和 OLAM
Map<String, Object> params = new HashMap<String, Object>();
List<String> activationCode = new ArrayList<String>();
activationCode.add("VPMA");
activationCode.add("OLAM");
Map activationCodes = Collections.singletonMap(activationCode, "activationCode");
params.put("userEmail", userEmail);
params.put("activationCode", activationCodes);
LocalDateTime time = asOf.minusDays(psValidationDays);
params.put("time", Timestamp.valueOf(time));
String sql =
"select "
+ "fx.date_created,"
+ "fx.balance,"
+ "au.email,"
+ "l.code "
+ "from financial_tx fx "
+ "inner join altpay_user au on "
+ "au.id = fx.altpay_user_id "
+ "inner join lookup l on "
+ "l.id = fx.tx_type_id "
+ "where au.email in (:userEmail) and "
+ "l.code in (:activationCode) and "
+ "(fx.date_created >= :time) order by date_created desc";
List<FinancialTx> financialTxList =
namedParameterJdbcTemplate.query(sql, params, financialTxrowMapper);
/* final Iterator<FinancialTx> iterator = financialTxList.iterator();
while (iterator.hasNext()) {
final FinancialTx financialTx = iterator.next();
if (financialTx.getActivationCode().equals("VPMA")) {
iterator.remove();
}
*/
return financialTxList;
}
【问题讨论】:
-
很难说出你在问什么。你能以某种方式重写这个问题吗?我假设您想了解如何在
JdbcTemplate中使用IN子句?
标签: java resttemplate spring-jdbc