의 목록이 들어 나는이 저장 프로 시저 자바에서 호출이 있습니다결과 집합은 LinkedCaseInsensitiveMap <V>
@Autowired
public ScoreDao(DataSource dataSource) {
setDataSource(dataSource);
mScoreStoredProcedure = new ScoreStoredProcedure(dataSource);
}
public List<Score> loadAllScore(String pUsername, String pUUID, int pLimit) {
return mScoreStoredProcedure.execute(pUsername, pUUID, pLimit);
}
private class ScoreStoredProcedure extends StoredProcedure {
private static final String SPROC_NAME = "loadUserScore";
public ScoreStoredProcedure(DataSource datasource) {
super(datasource, SPROC_NAME);
declareParameter(new SqlReturnResultSet("#result-set-2", mScoreMapper));
declareParameter(new SqlParameter("vusername", Types.VARCHAR));
declareParameter(new SqlParameter("vuuid", Types.VARCHAR));
declareParameter(new SqlParameter("vlimit", Types.INTEGER));
compile();
}
@SuppressWarnings("unchecked")
public List<Score> execute(String pUsername, String pUUID, int pLimit){
Map<String,Object> lAllScoreResult = super.execute(pUsername, pUUID, pLimit);
List<Score> lAllScore = ((List<Score>)lAllScoreResult.get("#result-set-2"));
return lAllScore;
}
}
이 매퍼 클래스 :
public class ScoreMapper implements RowMapper<Score> {
private String suffix = "";
@Autowired
private ScoreCreator scoreCreator;
@Autowired
private QuestionMapper questionMapper;
public ScoreMapper(String pSuffix) {
suffix = pSuffix;
}
public Score mapRow(ResultSet rs, int rowNum) throws SQLException {
Score lScore = scoreCreator.createScore(rs.getLong(suffix+"id"),
rs.getTimestamp(suffix+"stempel"), rs.getString(suffix+"username"),
rs.getInt(suffix+"points"), rs.getInt(suffix+"level"),
rs.getString(suffix+"comment"),
questionMapper.mapRow(rs, rowNum), rs.getString(suffix+"uuid"));
return lScore;
}
}
내가 가진 문제의 결과이다 내 StoredProcedure
은 결코 List<Score>
으로 전송되지 않습니다.
대신 LinkedCaseInsensitiveMap<V>
의 목록을 포함합니다. 각 항목은 데이터베이스의 값을 포함합니다.
매퍼는 스프링을 통해 올바르게 배선됩니다.
간단히 : 결과는 List<Score>
일 것으로 예상됩니다. 코드에 표시된 메서드를 사용하여이 문제를 해결할 수 있다고 생각했습니다. 결과를 내 List<Score>
에 직접 전송하려면 어떻게해야하나요?
나는 당신이 날 문제를 찾을 수 없습니다 튜토리얼
http://www.jtmelton.com/2007/10/30/using-springs-storedprocedure-and-rowmapper-mechanisms/을 따라?
mapRow를 절대로 호출하지 않는 것처럼 보입니다.지도를 목록으로 전송 중입니다. – aglassman
네, 궁금해하고 싶습니다.하지만이 튜토리얼을 따라갔습니다. http://www.jtmelton.com/2007/10/30/using-springs-stringsprocedure-and-rowmapper-mechanisms/ –
아 좋아요. MapRow를 호출하는 것에 대해 말한 것을 잘 살펴보면 스프링 API에서만 사용해야합니다. – aglassman