Jak używać ResultSetExtractor
do pobierania danych z bazy danych? tutaj używam wyroczni 10g jako zaplecza. W przypadku przeszukania danych pracownika z Tabeli pracowników, który lepiej jest użyć ResultSetExtractor
lub RowMapper
?Spring ResultSetExtractor
5
A
Odpowiedz
2
Jest dobry artykuł na wiosnę JDBC, check this
Po to jest korzystanie z przykładów:
klasa PersonResultSetExtractor:
package dao.mapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.ResultSetExtractor;
import domainmodel.Person;
public class PersonResultSetExtractor implements ResultSetExtractor {
@Override
public Object extractData(ResultSet rs) throws SQLException {
Person person = new Person();
person.setFirstName(rs.getString(1));
person.setLastName(rs.getString(2));
return person;
}
}
RowMapper:
package dao.mapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;
public class PersonRowMapper implements RowMapper {
@Override
public Object mapRow(ResultSet rs, int line) throws SQLException {
PersonResultSetExtractor extractor = new PersonResultSetExtractor();
return extractor.extractData(rs);
}
}
0
Prostszy przykład:
MyDataStructure result = jdbcTemplate.query(sql, new ResultSetExtractor<MyDataStructure>() {
@Override
public MyDataStructure extractData(final ResultSet rs) throws ... {
// collect data from rs here ...
return myData;
}
});
0
Można również użyć zamknięć (lambda) jako odwzorowania rząd rutyny od Javy 8:
String sql = "select first_name, last_name from PERSON where id = ?";
public Person jdbcTemplate.query(sql,(rs)->{return new Person(rs.getString("first_name"), rs.getString("last_name"));}, int id);
Pierwsza metoda param jest zapytanie, drugi - Twój odwzorowujący - Osoba (String, String) potrzebna jest konstruktor . "first_name", "last_name" to nazwy kolumn db. Po trzecie - arg dla id, jest to vararg, w którym można umieścić więcej params.
Powiązane problemy
- 1. wiele relacji jeden-do-wielu ResultSetExtractor
- 2. Jaki jest właściwy sposób korzystania z PreparedStatementCreator w Spring JDBC?
- 3. Spring Social facebook + Spring Security
- 4. Brak Spring Spring MultipartResolver w metodzie PUT
- 5. Maven dependency spring-web vs spring-webmvc
- 6. Konwertuj istniejącą aplikację Spring na Spring-Boot
- 7. Spring ResponseEntity
- 8. Spring: jak utworzyć instancję Spring bean, która pobiera parametr runtime?
- 9. spring-webmvc.jar nie pochodzi z Spring Framework 3.0.5 pobierz
- 10. Spring MVC + Spring Security zaloguj się z usługą internetową odpoczynku
- 11. Spring Boot with Spring Dostawca usług społecznościowych Google
- 12. Szukam OSGi ze Spring (specjalnie Spring MVC) tutorial
- 13. Integracja z Resteasy i Spring bez Spring ContextLoadListener
- 14. Konflikt Spring Cloud Consul na Spring Cloud Config
- 15. Czy użycie Spring Security @PreAuthorize na metodach kontrolerów Spring?
- 16. Spring Rozszerzenie SAML i Spring Security CSRF Protection Conflict
- 17. Jaki jest związek między Spring Boot a Spring IO?
- 18. Wyłączanie automatycznej konfiguracji Spring JMS w Spring Boot Application
- 19. Jak skonfigurować kontekst aplikacji WWW w Spring Spring MVC
- 20. spring-hateoas 0.8.0.RELEASE kompatybilność ze Spring 4
- 21. Spring Tool Suite brakuje szablonu projektu Spring MVC
- 22. Spring core 3.2.2 + Spring security 3.1.4: java.lang.IncompatibleClassChangeError: org.springframework.asm.ClassVisitor
- 23. Jak wyłączyć Spring Security w Spring Boot Application
- 24. Jersey w/Spring 3.0?
- 25. Spring intercap mvc addObject
- 26. Invalidate spring security session
- 27. Włączanie rejestrowania w Spring
- 28. Spring Boot i FreeMarker
- 29. Spring Security: Set GrantedAuthority
- 30. Spring RequestMapping 404 status
dzięki za odpowiedź ur. Jest to całkiem przydatne. –
Również znajduję jeszcze jeden sposób, używając tylko 'ResultSetExtractor'.Code jest tutaj –
Nie zapomnij wywołać rs.next(), ponieważ kursor jest początkowo umieszczony przed pierwszym wierszem. –