Я пытаюсь использовать HashMap для жестких значений кода вместо использования запроса.Как заменить SQL-запросString на HashMap
Вот «рабочий» код и SQL, который возвращает объекты типа person через ParameterizedRowMapper.
Public List<Personnel> getPersonnel (long id) {
LinkedList<Long> arg = new LinkedList<Long>();
String query = null;
SimpleJdbcTemplate template;
…
…
…
query = "SELECT p.id, p.name, e.emp_type
"FROM " Personnel p, EmployeeType e"
"WHERE p.id = ? ";
args.addLast(id);
return (template.query(query.toString(),
this.personnelRowMapper(), arg.toArray()));
персонала Ряд Mapper
private ParameterizedRowMapper<Personnel> personnelRowMapper()
throws SQLException
{
ParameterizedRowMapper<Personnel> map;
map = new ParameterizedRowMapper<Personnel>()
{
public Personnel mapRow(final ResultSet rs)
throws SQLException
{
Personnel personnel= null;
personnel = Personnel.Factory.newInstance();
personnel.setId(rs.getLong("id"));
personnel.setFirstName(rs.getString("Fname"));
personnel.setMiddleName(rs.getString("MName"));
personnel.setLastName(rs.getString("Lname"));
return (contact);
}
};
return (map);
}
Вот код, который использует HashMap вместо запроса.
Public List<Personnel> getPersonnel (long id) {
List<Personnel> fb = new ArrayList<Personnel>();
HashMap<String, String> rs = new HashMap<String, String>();
rs.put("Fname", "John");
rs.put("Lname", "Stoops");
rs.put("Mname", "K.");
String val1 = (String)rs.get("Fname");
String val2 = (String)rs.get("Lname");
String val3 = (String)rs.get("Mname");
//these 3 lines give me errors
fb.add(val1);
fb.add(val2);
fb.add(val3);
return fb;
Вот мои ошибки: «фактические и формальные списки аргументов различаются по длине» «фактический аргумент Строка не может быть преобразована в Контакте метод вызова преобразование»
Как вернуть список Типа персонала используя HashMap вместо SQL?
fb - это список «Персонал», тогда как 'val1' является строкой. Я думаю, вы не можете добавить 'val1' в fb. – yogidilip