Spring, Sparametryzowany ResultSetExtractor

0

Witam,

Ostatnio spotkalem sie (na szkoleniu w firmie) z JDBC template przy okazji Spring Framework, gdzie mozna bylo zaimplementowac interfejs ResultSetExtractor w sposob sparametryzowany, np:

public class Extractor implements ResultSetExtractor<My_Object> {
}

Niestety, ale nie jestem w stanie tego zreprodukowac w domu. Jedyne na co mi pozwala kompilator to implementacja ResultSetExctratora w postaci niesparametryzowanej. Czy ktos wie czemu tak sie dzieje? Moze kwestia wersji bibliotek?

Innymi slowy: jak zrobic sparametryzowany ResultSetExtractor? :)

Dzieki z gory,
j4hU

0

rozumiem że chodzi o typy generyczne, wiec ResultSetExtractor nie jest generykiem wiec nie mozesz podac mu typu, ale klasa która go implementuje nie powinna miec z tym problemu:

public class Extractor<My_Object> implements ResultSetExtractor {
//implemented methods
}

0

Hej,

Juz sobie poradzilem, okazuje sie ze jest generyczny od ktorejs tam wersji, mialem maly burdel w Maven'ie i dlatego mi ciagnal ze starych bibliotek, dla przykladu ponizej zamieszczam kod z dzialajacej aplikacji:

	private class UsersExtractor implements ResultSetExtractor<List<User>> {

		@Override
		public List<User> extractData(ResultSet rs) throws SQLException,
				DataAccessException {
			List<User> result = new ArrayList<User>();
			while (rs.next()) {
				User user;
				try {
					user = new User(rs.getString("firstName"),
							rs.getString("lastName"), rs.getString("login"),
							rs.getString("password"),
							readUserType(rs.getString("userType")),
							readDepartment(rs.getString("department")));
				} catch (ObjectDoesNotExistsException e) {
					throw new SQLException(e);
				}
				result.add(user);
			}
			return result;
		}

	}

Pozdrawiam,
Jacek

1 użytkowników online, w tym zalogowanych: 0, gości: 1