如何使用NamedParameterJDBCTemplate中的字符串列表来获取结果

尝试使用Spring-JDBC。 我用这个作为参考。 我正在尝试获得具有相同姓氏的演员列表。 运行此代码给了我想要的结果:

public List getActorsWithSameLastName(String lastName, NamedParameterJdbcTemplate template) { String query = "SELECT FIRSTNAME FROM ACTORS WHERE LASTNAME=:LASTNAME"; Map paramMap = new HashMap(); paramMap.put("LASTNAME", lastName); return template.queryForList(query, paramMap, String.class); } 

我有一个姓氏的List 。 如何获得具有列表的演员列表? 我是否遍历姓氏列表并每次调用getActorsWithSameLastName()或者spring是否提供了迭代并为我提取结果的方法? 请指教。

使用IN子句..

如何在JDBCTemplates中使用SELECT IN子句?

 List lastnames= new ArrayList<>(); Map namedParameters = Collections.singletonMap("lastnamevalues", lastnames); StringBuffer recordQueryString = new StringBuffer(); recordQueryString.append("select FIRSTNAME, LASTNAME from ACTORS where lastname in (:lastnamevalues)"); List nameInvolvements = this.namedparameterJdbcTemplate.query(recordQueryString.toString(), namedParameters, new MyMapper()); 

您还可以使用MapSqlParameterSource

 String query = "SELECT FIRSTNAME FROM ACTORS WHERE LASTNAME in (:LASTNAME)"; Set ids = ....; MapSqlParameterSource parameters = new MapSqlParameterSource(); parameters.addValue("LASTNAME", ids); this.namedparameterJdbcTemplate.query(query.toString(), parameters);