gpt4 book ai didi

java - 如何在不使用 RowMapper 类或 BeanRowMapper 的情况下映射 jdbcTemplate 查询中的 pojo 列表

转载 作者:行者123 更新时间:2023-12-01 11:48:06 27 4
gpt4 key购买 nike

我正在尝试使用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 将该行更改为

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;
}

最佳答案

此代码正在我的一个项目中运行:

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);
}

DAO:

public List<Map<String, Object>> list() {
return jdbcTemplate.queryForList("Select * from Administradores");
}

关于java - 如何在不使用 RowMapper 类或 BeanRowMapper 的情况下映射 jdbcTemplate 查询中的 pojo 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28996873/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com