我正在尝试使用jdbcTemplate填充pojo列表,但我不想为我的域中的每个pojo创建一个RowMapper类,而且我的域类中的属性较少,数据库中的表中的属性较多,所以我不能使用BeanRowMapper,我在此网站http://www.mkyong.com/spring/spring-jdbctemplate-querying-examples/中找到了一个示例
但我的问题是,这个例子一开始并不起作用
示例如下:
public List<Customer> findAll(){
String sql = "SELECT * FROM CUSTOMER";
List<Customer> customers = new ArrayList<Customer>();
List<Map> rows = getJdbcTemplate().queryForList(sql);
for (Map row : rows) {
Customer customer = new Customer();
customer.setCustId((Long)(row.get("CUST_ID")));
customer.setName((String)row.get("NAME"));
customer.setAge((Integer)row.get("AGE"));
customers.add(customer);
}
return customers;
}
但是这个例子给出了下面这行的一个错误
List<Map> rows = getJdbcTemplate().queryForList(sql);
错误是这样的:
Error incompatible types: java.util.List<java.util.Map<java.lang.String,java.lang.Object>> cannot be converted to java.util.List<java.util.Map>
所以netbeans在我右键单击行之后,netbeans将该行更改为
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql);
所以我不再有这个错误,但现在我的方法返回了一个包含空对象的列表,下面是我的方法经过修改后的结果
@Override
public ArrayList<Rol> findAll() {
ArrayList<User> listOfUsers= null;
try
{
String sql = "select * from User";
listOfUsers = new ArrayList<User>();
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql);
for (Map row : rows)
{
User user= new User ();
user.setName((String)(row.get("name")));
user.setLastName((String)row.get("lastName"));
user.setType((String)row.get("type"));
listOfUsers .add(user);
}
}
catch (DataAccessException dataAccessException)
{
dataAccessException.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
return listOfUsers;
}
发布于 2015-03-12 04:51:35
下面的代码在我的一个项目中运行:
List<Map<String, Object>> rows = administradoresDao.list();
List<Administrador> usuarios = new ArrayList<>();
for (Map<String, Object> row : rows) {
Administrador usuario = new Administrador();
usuario.setId(Integer.valueOf(row.get("id").toString()));
usuario.setNombre(row.get("nombre").toString()+ " "+row.get("a_pat").toString()+" "+row.get("a_mat").toString());
usuario.setDependencia(row.get("dependencia").toString());
usuario.setEmail(row.get("email").toString());
usuario.setTelefono(row.get("telefono").toString());
usuario.setExtension(row.get("extension").toString());
usuarios.add(usuario);
}
刀:
public List<Map<String, Object>> list() {
return jdbcTemplate.queryForList("Select * from Administradores");
}
https://stackoverflow.com/questions/28996873
复制相似问题