-3

我正在寻找有关如何在纯 Java/JDBC 中实现 DAO 层的教程/最佳实践示例。

大多数 DAO 是否基于 Data Mapper 模式?

是否也使用 Active Record 模式?

你怎么做呢 ?

4

3 回答 3

4

DAO 唯一需要的就是接口和实现。你的接口定义了操作,实现提供了实现。

DAO 的特别之处在于接口和实现的目的是专门用于数据访问。您的应用程序处理数据访问的方式隐藏在您的 DAO 抽象之后。

假设您在网上看到了一些 jdbc 代码。您想在 dao 中使用该代码。

Statement st = conn.createStatement();
st.executeUpdate("INSERT INTO sometable " +
                   "VALUES (...)");

所以创建一个接口

interface ThingDao {
   public void save(Thing thing);
}

和你的实施

public ThingDaoImpl implements ThingDao {

    ThingDaoImpl() {
        // do setup around connections
    }

    public void save(Thing thing) {
        // put the jdbc code here
    }

}

现在假设您想让您的生活变得轻松并使用 Spring 的 JdbcTemplate 之类的东西。DAO 模式不会改变。唯一的变化是在您的实现中,您将使用模板来执行操作。这很重要,因为这意味着使用您的 Dao 的任何代码都不必更改,因为您没有更改 interface。这就是DAO 抽象的意义所在。

于 2013-03-26T15:54:05.923 回答
2

如果你想要无痛的 JDBC,这里是我最喜欢的解决方案... Spring JDBC Template documentation

不过,您仍然需要了解 Spring

于 2013-03-26T15:57:21.987 回答