我正在尝试使用HashMap对值进行硬编码,而不是使用查询。

这是“工作”代码和SQL,它们通过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()));


人员行映射器

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;


这是我的错误:“实际和正式论点列表的长度不同”
“无法通过方法调用转换将实际参数String转换为Contact”

如何使用HashMap而不是SQL返回类型人员列表?

最佳答案

谢谢。创建了一个新的人员实例。然后设置并获取所有数据一次。

10-06 07:21