2016-06-20 7 views
1

Ich versuche, Spring 4 und Java 8 gleichzeitig zu verstehen. Ich habe eine KlasseWie man QueryForList in Spring 4 mit Java 8 ausführt?

EmployeeDTO 
|-id 
|-Emp_Name 
|-Address 

Wenn ich den Code unten versuchen 1 Mitarbeiter zu holen, es funktioniert gut:

public EmployeeDTO getEmpoloyeebyID(String empId) { 

     return springJdbcTemplate.queryForObject(sql, 
       (rs, rowNum) -> { 
        return new EmployeeDTO(rs.getString("Emp_Name"), rs 
          .getString("Address")); 
       }, empId); 
    } 

Aber jetzt möchte ich den Frühling jdbcTemplate und Java eine Liste von Objekten erhalten unter Verwendung von 8 Ich weiß, dass ich es vielleicht mit Mappers schaffen werde. Aber ich möchte lernen, wie man es mit Java 8 wie das obige Beispiel macht. Ich sehe elegant aus.

public List<EmployeeDTO> getAllEmpoloyeeByAge(Integer age) { 

     return springJdbcTemplate.queryForList(sql,<to-do>, age); 
    } 

Antwort

2

Klasse JdbcTemplate hat bisher keine Methode namens queryForList, dass Sie Ihren Lambda-Ausdruck passieren können.

Sie benötigen eine der query Methoden verwenden, the one, die eine SQL-Zeichenfolge, ein RowMapper und Abfrage Argumente nimmt:

public List<EmployeeDTO> getAllEmployeesByAge(int age) { 
    return springJdbcTemplate.query(sql, (rs, rowNum) -> 
     new EmployeeDTO(rs.getString("Emp_Name"), rs.getString("Address")), age); 
} 

Beachten Sie, dass Ihr Lambda-Ausdruck entspricht das RowMapper Argument der query Methode.

Verwandte Themen