public class ModelMapper implements ResultSetMapper<Model> {
public Model map(int index, ResultSet resultSet, StatementContext ctx) throws SQLException {
// Get result set meta data & column count
ResultSetMetaData metaData = resultSet.getMetaData();
int columns = metaData.getColumnCount();
Map<String, Object> map = new HashMap<>(columns);
for (int i = 1; i <= columns; ++i) {
String columnName = metaData.getColumnName(i);
map.put(columnName, resultSet.getObject(columnName));
}
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
return objectMapper.convertValue(map, Model.class);
}
}
在我的ModelImplDao.class
我已将其注册为@RegisterMapper(ModelMapper.class)
。
由于我可以看到ModelMapper
类只有一个参数Model
,我如何创建一个通用的参数化类,以Model
作为参数,我也能够将其作为映射器在ModelImplDao.class
注册?
答案 0 :(得分:0)
我们不能使用其中T是通用的ResultMapper。它需要知道类型。或者,您可以使用此库(http://manikandan-k.github.io/jdbi_folder/)。它提供了一种删除映射器的方法。该库将负责映射。