gpt4 book ai didi

java - 数据库信息 -> 对象 : how should it be done?

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:25 25 4
gpt4 key购买 nike

我的应用程序将根据请求从数据库中检索信息并根据该信息生成一个对象。我目前正在考虑两种不同的技术(但我也对其他人开放!)来完成这项任务:

方法一:

class Book {

private int id;
private String author;
private String title;

public Book(int id) {

ResultSet book = getBookFromDatabaseById(id);

this.id = book.id;
this.author = book.author;
// ...

}

}

方法二:

public class Book {

private HashMap<String, Object> propertyContainer;

public Book(int id) {

this.propertyContainer = getBookFromDatabaseById(id);

}

public Object getProperty(String propertyKey) {

return this.propertyContainer.get(propertyKey);

}

}

使用方法一,我相信它更容易控制、限制和可能访问属性,添加新属性,然而,使用方法二变得更顺畅。

执行此操作的正确方法是什么?

最佳答案

我认为这个问题已通过多种方式得到解决:ORM、DAO、行和表映射器,以及许多其他方式。无需重做。

你必须认真考虑的一个问题是包之间的耦合和循环依赖。您可能认为通过告诉模型对象如何持久化自身来做一些聪明的事情,但这种设计选择的一个结果是模型对象和持久层之间的耦合。如果这样做,则不能使用没有持久性的模型对象。它们真的变成了一个笨重的大包。没有分层。

另一种选择是让模型对象不管它们是否被持久化。这是一种单向依赖:持久性知道模型对象,但反之则不知道。

谷歌寻找其他解决方案。没有必要再打败那匹死马。

关于java - 数据库信息 -> 对象 : how should it be done?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12253600/

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