Java 如何使用NamedParameterJDBCTemplate中的字符串列表获取结果
正在试验SpringJDBC。我用它作为参考。我正试图得到一份演员名单谁有相同的姓氏。运行此代码可以获得所需的结果:Java 如何使用NamedParameterJDBCTemplate中的字符串列表获取结果,java,spring,spring-jdbc,Java,Spring,Spring Jdbc,正在试验SpringJDBC。我用它作为参考。我正试图得到一份演员名单谁有相同的姓氏。运行此代码可以获得所需的结果: public List<String> getActorsWithSameLastName(String lastName, NamedParameterJdbcTemplate template) { String query = "SELECT FIRSTNAME FROM ACTORS WHERE LASTNAME=:LA
public List<String> getActorsWithSameLastName(String lastName,
NamedParameterJdbcTemplate template) {
String query = "SELECT FIRSTNAME FROM ACTORS WHERE LASTNAME=:LASTNAME";
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("LASTNAME", lastName);
return template.queryForList(query, paramMap, String.class);
}
public List getActorsWithSameLastName(字符串lastName,
NamedParameterJdbcTemplate(模板){
String query=“从角色中选择FIRSTNAME,其中LASTNAME=:LASTNAME”;
Map paramMap=新的HashMap();
paramMap.put(“LASTNAME”,LASTNAME);
返回template.queryForList(query,paramMap,String.class);
}
我有一个姓氏列表。我怎样才能得到一份演员名单和我的名单?我是否每次都迭代姓氏列表并调用getActorWithSamelastName()
,还是spring提供了一种方法来进行迭代并获取结果?请给我一些建议 在子句中使用
List lastnames=new ArrayList();
Map namedParameters=Collections.singletonMap(“lastnamevalues”,lastnames);
StringBuffer recordQueryString=新的StringBuffer();
append(“从LASTNAME所在的ACTORS中选择FIRSTNAME和LASTNAME(:lastnamevalues)”);
List nameInvolvements=this.namedparameterJdbcTemplate.query(recordQueryString.toString(),namedParameters,new MyMapper());
您也可以使用
String query=“从LASTNAME所在的参与者中选择FIRSTNAME(:LASTNAME)”;
设置ID=。。。。;
MapSqlParameterSource参数=新的MapSqlParameterSource();
参数addValue(“LASTNAME”,ids);
this.namedparameterJdbcTemplate.query(查询,参数);
谢谢,这适用于我有一组多个字符串的情况object@Jayamohanquery.toString()
需要什么,当它已经是字符串格式时,我认为不需要它。我已经删除了它。这应该是可以接受的答案。这是一个更好的方法。
List<String> 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());
String query = "SELECT FIRSTNAME FROM ACTORS WHERE LASTNAME in (:LASTNAME)";
Set<String> ids = ....;
MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("LASTNAME", ids);
this.namedparameterJdbcTemplate.query(query, parameters);