【问题标题】:Spring DAO file, rowmapper not genericSpring DAO 文件,rowmapper 不是通用的
【发布时间】:2018-03-06 02:54:32
【问题描述】:

我正在使用 Spring Maven,并尝试将我的 SQL 数据库与之连接。

当我尝试使用 rowmapper 方法时,它说它不是通用的。

【问题讨论】:

  • RowMapper 无论如何都是一个接口,你不能像你尝试的那样实例化它。

标签: java spring maven


【解决方案1】:

你不能实例化RowMapper,你应该创建自己的子类来映射行和对象。

让我们假设您的Offer 课程是这个:

public class Offer {

    private Long id;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(final Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(final String name) {
        this.name = name;
    }

}

现在假设您的offer 表包含一个varchar 列name 和一个bigint 列id

您的自定义 RowMapper<Offer> 类可能如下所示:

public class OfferMapper implements RowMapper<Offer> {

    public Offer mapRow(final ResultSet rs, final int row) throws SQLException {

        Offer offer = new Offer();

        offer.setId(rs.getLong("id"));
        offer.setName(rs.getString("name"));

        return offer;
    }

}

最后,使用您的自定义实现作为参数:

return jdbc.query("select * from offer", new OfferMapper());

【讨论】:

  • 谢谢你。。用hibernate代替数据库连接会更好吗?
  • Hibernate 有很大的优势,并且“映射”直接在您的实体对象级别(您的 Offer 对象)声明,并带有注释,一定要试一试。
  • @sumitslal :另外,如果当前答案回答了您最初的问题,您能否将其标记为已接受的答案,谢谢 :)
猜你喜欢
  • 1970-01-01
  • 2023-03-16
  • 2018-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
  • 1970-01-01
相关资源
最近更新 更多