Spring 2.5 Bean Property RowMapper ResultSet 과 실체 클래스 의 필드 를 자동 으로 매 핑 합 니 다.
6294 단어 springsqljdbc각본performance
org.springframework.jdbc.core.BeanPropertyRowMapper 검색 한 ResultSet 과 실체 클래스 의 필드 를 자동 으로 매 핑 할 수 있 습 니 다.
Spring API Doc 의 설명 은 다음 과 같 습 니 다.
RowMapper implementation that converts a row into a new instance of the specified mapped target class. The mapped target class must be a top-level class and it must have a default or no-arg constructor.
Column values are mapped based on matching the column name as obtained from result set metadata to public setters for the corresponding properties. The names are matched either directly or by transforming a name separating the parts with underscores to the same name using "camel" case.
Mapping is provided for fields in the target class for many common types, e.g.: String, boolean, Boolean, byte, Byte, short, Short, int, Integer, long, Long, float, Float, double, Double, BigDecimal, java.util.Date, etc.
To facilitate mapping between columns and fields that don't have matching names, try using column aliases in the SQL statement like "select fname as first_name from customer".
Please note that this class is designed to provide convenience rather than high performance. For best performance consider using a custom RowMapper.
구체 적 인 예 는 다음 과 같다.
만약 이러한 테이블 이 있다 면 SQL - server 2000 의 테이블 스 크 립 트 는 다음 과 같 습 니 다.
1. /*
2.
3. */
4. CREATE TABLE admin(
5. id int identity(1,1) primary key,
6. username varchar(20) not null,
7. password varchar(32) not null,
8. )
javaBean:
1. /**
2. *
3. */
4. package db.demo;
5.
6.
7. /**
8. * @author zhangyong
9. *
10. * @version 8:11:57 PM
11. *
12. */
13. public class Admin {
14. private int id;
15. private String username;
16. private String password;
17.
18. public int getId() {
19. return id;
20. }
21.
22. public void setId(int id) {
23. this.id = id;
24. }
25.
26. public String getUsername() {
27. return username;
28. }
29.
30. public void setUsername(String username) {
31. this.username = username;
32. }
33.
34. public String getPassword() {
35. return password;
36. }
37.
38. public void setPassword(String password) {
39. this.password = password;
40. }
41. }
예전 에 해당 하 는 Admin DAO 에서 우 리 는 예전 에 이렇게 했 습 니 다. 귀 찮 게 보 였 습 니 다. 만약 에 표 의 필드 가 많 으 면 사람 이 죽 을 것 입 니 다. 우 리 는 끊임없이 set, get 을 해 야 합 니 다.
# /**
# *
# */
# package db.demo;
#
# import java.sql.ResultSet;
# import java.sql.SQLException;
# import java.util.List;
#
# import org.springframework.jdbc.core.RowMapper;
# import org.springframework.jdbc.core.support.JdbcDaoSupport;
#
# /**
# * @author zhangyong
# *
# * @version 10:05:37 PM
# *
# */
# public class AdminDAO extends JdbcDaoSupport {
#
# private final String ID = "id";
# private final String USERNAME = "username";
# private final String PASSWORD = "password";
# private final String TABLE_NAME = "admin";
#
# /**
# * <br/>
# */
# public List<Admin> queryAll() {
# final String sql = "Select * from " + TABLE_NAME;
#
# return getJdbcTemplate().query(sql, new RowMapper(){
#
# public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
# Admin admin = new Admin();
# admin.setId(rs.getInt(ID));
# admin.setUsername(rs.getString(USERNAME));
# admin.setPassword(rs.getString(PASSWORD));
# return admin;
# }
#
# });
# }
# }
지금 BeanProperty Row Mapper 를 사용 하려 면 다음 과 같이 해 야 합 니 다.
1. /**
2. *
3. */
4. package db.demo;
5.
6. import java.util.List;
7.
8. import org.springframework.jdbc.core.BeanPropertyRowMapper;
9. import org.springframework.jdbc.core.support.JdbcDaoSupport;
10.
11. /**
12. * @author zhangyong
13. *
14. * @version 10:05:37 PM
15. *
16. */
17. public class AdminDAO extends JdbcDaoSupport {
18.
19. private final String TABLE_NAME = "admin";
20.
21. /**
22. * <br/>
23. */
24. public List<Admin> queryAll() {
25. final String sql = "Select * from " + TABLE_NAME;
26.
27. return getJdbcTemplate().query(sql, new BeanPropertyRowMapper(Admin.class));
28. }
29. }
Sprin 이 우 리 를 위해 자동 으로 비 춰 줄 것 이다. 분명히 이것 은 이전 보다 훨씬 편리 하 다.우 리 는 그것 을 다른 어떤 Row Mapper 를 사용 하 는 장소 에 도 사용 할 수 있다. 왜냐하면 그것 은 Row Mapper 에서 물 려 받 았 기 때문이다.
주의해 야 할 것 은 Bean Property Row Mapper 는 필드 이름과 실체 류 의 표준 Setter 방법 에 따라 매 핑 을 하 는 것 입 니 다.즉, 표 의 필드 이름과 실체 류 의 구성원 변수 이름 을 일치 시 켜 야 한 다 는 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.