将参数附加到Java JDBC中的预处理语句并打印查询

时间:2018-09-18 13:43:15

标签: java spring-boot jdbctemplate

我有以下参数化查询和参数集:

private String queryBuilder(DetailsRequest apiRequest, Map<String, String> headers) {

    StringBuilder builder = new StringBuilder();
    final String QUERY = "select * from gfc.LSI_ELGBLTY where INSURANCE_ID = ? and SYS_CD = ? and ACCT_TYPE in (?)";

    Object[] params = new Object[]  {
            request.getInsuranceId(),request.getSystemId(),AcctNameBuilder};
}

如何为上述查询设置这些参数并打印?我只是不想执行它们。我正在使用spring-boot,并且不想为此创建新的连接对象。

1 个答案:

答案 0 :(得分:0)

这是一种实现方法:

private void printPopulatedQuery(String query, Object[] params) {
    for(Object param : params) {              
          query = query.replaceFirst("\\?", "'" + String.valueOf(param) + "'");
    }

    System.out.println(query);
}

如果您不希望数字参数用引号引起来,则可以首先检查参数的类型。