Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用NamedParameterJDBCTemplate中的字符串列表获取结果_Java_Spring_Spring Jdbc - Fatal编程技术网

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

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

正在试验SpringJDBC。我用它作为参考。我正试图得到一份演员名单谁有相同的姓氏。运行此代码可以获得所需的结果:

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@Jayamohan
query.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);