我正试图创建一个方法,从我的数据库中的客户表中返回所有用户,但下面的代码是:
try {
List<Customer> customer = jdbi.open().createQuery("SELECT * FROM customer")
.mapTo(Customer.class).list();
} catch (Exception e) {
System.out.println(e);
}
返回错误:
org.jdbi.v3.core.mapper.NoSuchMapperException: No mapper registered for type com.customer.Customer
我看到了另一篇关于这个错误的帖子,他们说这个错误是因为类模型和数据库表之间的映射而发生的,但我的应用程序是用纯java和JDBI 3构建的,我没有使用Spring,所以如何映射这个代码的结果以将这个结果转换为客户列表?
我修复了创建此类的问题
public class CustomerMapper implements RowMapper<Customer>{
@Override
public Customer map(ResultSet rs, StatementContext ctx) throws SQLException {
return new Customer(rs.getInt("id"), rs.getString("uuid"), rs.getString("name"), rs.getString("email"), rs.getString("birthDate"), rs.getString("cpf"), rs.getString("gender"), rs.getDate("createdAt"), rs.getDate("updateAt"));
}
}
.mapTo(Customer.class).list();
我把.map(new CustomerMapper()).list();
放在哪里,参考我创建的地图
对我来说,这通常发生在使用IntelliJ运行测试时。当使用Maven运行相同的测试时,一切都很好。