如何用Java中的IN语句查询数据库?

时间:2018-03-21 18:13:48

标签: java sql-server database

我有一个小应用程序,用户上传一个带有大量id的文件。我读取文件并将所有这些id存储在列表中。现在对于每个id,我需要查询数据库,以便我可以选择其他一些其他信息。我的问题是如何将这些id作为select语句的一部分?

目前我只是通过输入id来手动查询,我想知道如何使用getter()作为查询的一部分?

从数据库中选择的方法

public List<NYProgramTO> getLatestNYData() throws Exception {
    String query = "SELECT REQ_XMl, SESSIONID, EXPIRATION_DATE, QUOTE_DATE, POLICY_EFFECTIVE_DATE, TARGET_CREATED, RATING_TRANSACTION_ID, SOURCE_LASTMODIFIED, PREM_WHEN_RERATED FROM dbo.XML_SESSIONS with (nolock) WHERE XML_SESSIONS.LOB = 'PersonalAuto' AND XML_SESSIONS.RATING_STATE = 'NY' AND XML_SESSIONS.ID IN ('72834052') ORDER BY XML_SESSIONS.SOURCE_LASTMODIFIED DESC";

    return this.sourceJdbcTemplate.query(query, (rs, rowNum) -> {
        NYProgramTO to = new NYProgramTO();
        to.setRequestXML(rs.getString("REQ_XML"));
        to.setExpirationDate(rs.getDate("EXPIRATION_DATE"));
        return to;
    });
}

由于

1 个答案:

答案 0 :(得分:0)

您可以使用MapSqlParameterSource来映射参数。

public void selectExample(Car car){

   String query = "select * from car where id_car = :id and color = :color";

   this.sourceJdbcTemplate.query(query, new MapSqlParameterSource("id", car.getId()).addValue("color", car.getColor()), new CarRowMapper());
}